说我有一个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)
答案 0 :(得分:30)
http://regexr.com/3eoib表示变量不会被重新分配。
const
表示可以重新分配变量
需要思考的其他事项:
const
let
const
并不表示某个值是“常量”或不可变的。
const foo = {};
foo.bar = 10;
console.log(foo.bar); // --> 10
只有绑定是不可变的。即在const变量上使用赋值运算符或一元或后缀 - 或++运算符会引发TypeError异常
ES6 const
和let
也是let
。尽管标识符在编译时具有相同的内存引用,但在代码中声明之前无法访问它们。 (但不是因为我们认为声明将被物理地移动到范围的顶部);)
答案 1 :(得分:18)
const
vs let
主要与代码块中的“更改”有关。它只在这样的情况下才重要:
const myValues = this.props.someData;
if (*some condition*) {
myValues = [];
}
在这种情况下,您需要使用let,因为您要更改分配给变量myValues
的值:
let myValues = this.props.someData;
if (*some condition*) {
myValues = [];
}
如果props.someData
正在改变,它将触发重新渲染组件。因此,const vs let不会发挥作用。重新运行整个render
方法。
所以说,我在你描述的情况下使用const
。除非您直接操纵变量的有价值,否则请使用const
。
答案 2 :(得分:3)
答案 3 :(得分:0)
常量
是contant的缩写,表示变量的值不会改变。
让
相反,意味着变量的值将改变
var
在两者之间只是中立的。