2

我刚刚开始使用Reactin Rails

当我遇到其他使用 . 的Rails应用程序时React,我发现其中一些*.js.*/app/assets/javascripts/components/.
例如示例 React Rails 应用程序

组件文件如下:

_comment.js.jsx

虽然有些没有,例如Account React Rails App

组件文件如下:

record.js.coffee

那么添加前导下划线有什么区别呢?

我知道,用前导下划线Rails命名*.html.erb文件意味着它是您可以重用的部分文件,我们调用render方法来渲染它。但是这里的*.js.*文件需要components.jswith //= require_tree ./components。因此,即使您删除了下划线,也没有什么区别。而且我相信这是“重用”组件的唯一部分。

4

1 回答 1

1

正如//= require_tree ./componentsapplication.js. 我认为用前导下划线命名它们真的没有任何区别。

然后我认为可能与 Rails资产管道有关,因为实际上component文件在sample-react-rails-app中是重复的。下划线可能是为了在预编译时避免重复。

我已经尝试删除这些文件中的前导下划线并在本地运行应用程序(我也在开发环境中进行资产管道预编译)。事实证明,即使您删除了前导下划线,这些文件的预编译仍然不会重复,并且应用程序运行良好。事实上,即使文件重复,资产管道也只会包含一次相同的文件。require

总之,前导下划线对您的应用程序的工作方式没有任何影响。这可能是在Rails 视图SASS 编译中部分命名之后的命名约定, Rails Issues #3094中也提到了这一点。一般来说,我认为值得遵循约定来告诉你自己和你的团队这些文件作为不完整的部分工作。

于 2015-11-29T07:41:20.850 回答