【问题标题】:What's the best way to use reactjs and rails asset pipeline?使用 reactjs 和 rails 资产管道的最佳方式是什么?
【发布时间】:2016-01-11 08:26:10
【问题描述】:

我正在使用 ruby​​ on rails(带有资产管道)、reactjs(带有 react-rails gem)和 reflux

目前,我将所有反应组件、回流存储和操作定义为 javascript 中的全局变量,因此它们在我的 rails 应用程序的每个页面中都被声明。

我担心当我有数百个组件和商店时,浏览器会在定义所有这些变量时出现内存问题。

这真的是个问题吗?有没有更好的方法将此堆栈与资产管道一起使用?

【问题讨论】:

    标签: javascript ruby-on-rails reactjs asset-pipeline refluxjs


    【解决方案1】:

    一个好的方法是将 React 的组件从 Rails 中分离出来,然后使用正常的 React 生态,包括 npm 和 webpack,将已经转译的 JS 文件注入到您的 Rails 资产管道中。这样一来,Rails 仍然可以管理您的管道资产的整体使用,但不必直接从 React 生成 JS。网页上有几个关于如何以这种方式使用 webpack 的描述。就个人而言,我使用的是 netguru 在 GitHub 上找到的一个名为 react_webpack_rails (https://github.com/netguru/react_webpack_rails) 的工具,但如果您已经知道自己在使用 webpack 做什么并做出反应,那么您可能不需要这样的帮助程序。还有其他类似的辅助工具;您可以查看https://github.com/shakacode/react-webpack-rails-tutorialhttp://www.railsonmaui.com/blog/2014/10/03/integrating-webpack-and-the-es6-transpiler-into-an-existing-rails-project/ 进行其他讨论。

    我根本不喜欢 Javascript 中的全局变量,所以我发现使用像 Netguru 这样的单独但集成的 React-and-Rails 方法是处理它的最佳方法,而不会弄乱我的 JS 实现或我的导轨视图。

    关于你关于前端“重量”的问题,我想说这并不重要。像大多数速度或内存使用问题一样,最好避免预优化。当您在实际使用中遇到瓶颈时,然后迭代地重构最大的瓶颈,直到性能再次可以接受。在任何情况下,如果你在 React 中做一个单页应用程序,你可能会给客户端带来与每次使用 Rails 页面重新发送一样多的负载(忽略往返本身的成本)。只需注意尽早进行分析并监控您正在做什么,但不要过早优化,直到您明显需要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-05
      • 2012-04-23
      • 2018-01-11
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多