Sam*_*Sam 27 ecmascript-6 reactjs
假设我有一个React组件 - 哑或不 - 我想从商店中获取一些内容并将其放入变量中以使我的代码更简洁一些.我应该使用const还是让?显然,国家将发生变化.
这是我正在谈论的一个例子.同样,我想强调,当用户与我的应用程序交互时,myValues会发生变化.
class MyComponent extends Component {
render() {
// Here, should I use const or let?
const myValues = this.props.someData;
return(
<div>
{myValues.map(item => (
<SomeOtherComponent key={item.id} data={item} />
))}
</div>
);
};
}
function mapStateToProps(state) {
return {
someData: state.someValuesComingFromApi
}
}
export default connect(mapStateToProps)(MyComponent)
Run Code Online (Sandbox Code Playgroud)
Yad*_*ran 36
const
是一个不会重新分配变量的信号.
let
是一个可以重新分配变量的信号
需要思考的其他事项:
const
默认使用let
仅当需要重新绑定const
并不表示值是"常量"或不可变的.
const foo = {};
foo.bar = 10;
console.log(foo.bar); // --> 10
Run Code Online (Sandbox Code Playgroud)
只有绑定是不可变的.即在const变量上使用赋值运算符或一元或后缀 - 或++运算符会引发TypeError异常
ES6 const
也let
被吊起来了.尽管标识符在编译时具有相同的内存引用,但在代码中声明之前无法访问它们.(但不是因为我们认为声明会在范围内被移动到顶部);)
eri*_*-sn 24
const
vs let
主要与代码块中的"更改"有关.它只在这样的情况下才有意义:
const myValues = this.props.someData;
if (*some condition*) {
myValues = [];
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您需要使用let,因为您正在更改分配给变量的值myValues
:
let myValues = this.props.someData;
if (*some condition*) {
myValues = [];
}
Run Code Online (Sandbox Code Playgroud)
如果props.someData
正在更改它将触发重新呈现组件.因此,const vs let不会发挥作用.整个render
方法重新运行.
所以说,我const
在你描述的情况下使用.除非您直接操纵变量的有价值,否则请使用const
.
归档时间: |
|
查看次数: |
57476 次 |
最近记录: |