Ruby on rails 在Rails中命名React组件文件时,前导下划线有什么区别?
我刚刚开始学习Ruby on rails 在Rails中命名React组件文件时,前导下划线有什么区别?,ruby-on-rails,reactjs,react-rails,Ruby On Rails,Reactjs,React Rails,我刚刚开始学习Rails中的React 当我遇到别人的Rails应用程序带有React,我发现其中一些应用程序在*.js.*文件的/app/assets/javascripts/components/ e、 g 组件文件如下所示: _comment.js.jsx record.js.coffee 虽然有些人没有, e、 g 组件文件如下所示: _comment.js.jsx record.js.coffee 那么,添加前导下划线有什么区别呢 我知道在Rails视图中,用前导下划线命名*.
Rails
中的React
当我遇到别人的Rails
应用程序带有React
,我发现其中一些应用程序在*.js.*
文件的/app/assets/javascripts/components/
e、 g 组件文件如下所示:
_comment.js.jsx
record.js.coffee
虽然有些人没有,
e、 g
组件文件如下所示:
_comment.js.jsx
record.js.coffee
那么,添加前导下划线有什么区别呢
我知道在
Rails
视图中,用前导下划线命名*.html.erb
文件意味着它是一个可以重用的部分,我们称之为render
方法来渲染它。但是这里的*.js.
文件是components.js
和/=require\u tree./components
所需要的。因此,即使删除下划线,也没有什么区别。我相信这是唯一“重用”组件的部分。因为在application.js
中有/=require\u tree./components
。我认为用下划线来命名它们真的没有什么区别
然后我认为可能与Rails资产管道有关,因为实际上组件文件在示例react Rails应用程序中是重复需要的。下划线可能是为了避免预冷时重复
我已尝试删除这些文件中的前导下划线,并在本地运行该应用程序(同时在dev env中进行资产管道预编译)。事实证明,即使删除了前导下划线,这些文件的预编译仍然不会重复,应用程序也可以正常运行。事实上,资产管道只会包含同一个文件一次,即使您需要重复使用该文件
总之,主下划线对应用程序的工作方式没有任何影响。这可能是在部分命名之后的一种命名约定,就像在Rails视图或SASS编译中提到的那样。一般来说,我认为应该遵循这个惯例,告诉你自己和你的团队这些文件是不完整的。欢迎来到StackOverflow!请阅读Hi@Lahiru,我的问题与我遇到的具体问题无关吗?对不起,如果我的评论似乎是冒犯性的。我的意思只是试着用提供的标记做一些格式化,以便其他人更好地理解:)@Lahiru没关系,我只是想找出正确的方法。非常感谢您为我写下“建议编辑”。@limelights谢谢!我还在rails视图中使用partials,并调用“render”方法来渲染partials。但是,如果它们都是*.js.jsx文件,则很可能无法在这些文件中调用任何rails方法。您能否提供一个在中重用代码的示例?