New*_*Aid 3 reactjs react-hooks
最近,我在博客上看到了很多例子,其中React功能组件中的方法都带有下划线。我还在基于类的组件中看到了这一点,并被告知这意味着它们是私有的(?)。
但是功能组件内部功能已经是私有的,无法在组件外部访问,对吗?
例:
function MyComponent({ propOne }) {
const _getData() {
/// Why does this have an _underscore on it?
}
return (
<div>a div</div>
)
}
Run Code Online (Sandbox Code Playgroud)
Airbnb React / JSX样式指南(版本2019.05.24)实际上警告以下命名约定:
- 不要在React组件的内部方法中使用下划线前缀。
为什么?下划线前缀有时在其他语言中用作约定,以表示隐私。但是,与那些语言不同,JavaScript没有对隐私的本地支持,所有内容都是公共的。无论您的意图是什么,在属性中添加下划线前缀实际上并不会使它们变为私有,并且任何属性(带或不带下划线前缀的属性)都应视为公开属性。有关更深入的讨论,请参见问题#1024和#490。
简而言之:
underscore
表示private
方法是从其他语言借来的。private
并阻止其使用。是否遵循约定由您决定。没必要 如果遵循上面引用的样式指南,则不应该这样做。但是,这也取决于您与之共事的人/例如,公司是否使用带有下划线的样式指南来表示private
属性。
该约定的另一种语言示例-Python。从命名约定:
_single_leading_underscore
该约定用于声明私有变量,函数,方法和类。
归档时间: |
|
查看次数: |
102 次 |
最近记录: |