2015-10-13 45 views
1

我在rails上(使用资产管道),reactjs(使用react-rails gem)和reflux使用ruby。使用reactjs和rails资产管道的最佳方式是什么?

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

恐怕当我有数百个组件和商店时,浏览器将会有定义所有这些变量的内存问题。

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

回答

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中全局变量的粉丝,所以我发现使用独立但集成的React-and-Rails方法(如Netguru's)是最好的方式来处理它而不会混乱我的JS实现或我的Rails视图。

至于你关于前端“重量”的问题,我会说它没关系。像大多数速度或内存使用问题一样,最好避免预优化。当你在实际使用中遇到瓶颈时,重复任何最重要的瓶颈,直到性能再次被接受。无论如何,如果您在React中制作单页应用程序,那么您可能会通过每次重新发送Rails页面(忽略往返本身的成本)来为客户端加载尽可能多的负载。只要注意早期分析并监视你在做什么,但不要过早地进行优化,直到显然你需要。

相关问题