Javascript 直接使用数组还是将数组赋给变量并使用它更好?
假设我有一个MapStateTops作为Javascript 直接使用数组还是将数组赋给变量并使用它更好?,javascript,reactjs,react-native,redux,Javascript,Reactjs,React Native,Redux,假设我有一个MapStateTops作为 function mapStateToProps(state) { return { productList: state.products || [] } } 另一个是 const EMPTY_ARRAY = [] function mapStateToProps(state) { return { productList: state.products || EMPTY_ARRAY
function mapStateToProps(state) {
return {
productList: state.products || []
}
}
另一个是
const EMPTY_ARRAY = []
function mapStateToProps(state) {
return {
productList: state.products || EMPTY_ARRAY
}
}
似乎在后一种方法中,重新渲染的发生率比前一种方法要小。所以我的问题是,哪种方法更好,如果我们在多个地方使用空数组
,后一种方法会有任何副作用吗
const EMPTY_ARRAY = []
function mapStateToProps(state) {
return {
productList: state.products || EMPTY_ARRAY
customerList: state.customer || EMPTY_ARRAY
}
}
由于productList和customerList引用的是同一个数组?因此,一般来说,创建变量与仅使用空括号有两种情况
空_数组中存储任何内容,那么它不会占用太多空间,而且性能优势可能是值得的
至于你为什么能获得这样的速度优势,是因为当你把它放在空方括号中时,程序必须在将结果分配给productList
之前花时间分配内存,而不是仅仅使用已经分配的内存
不过,使用方括号的内存优势在于,当函数结束时,垃圾收集器会释放该内存,使其可用于其他进程,而不是使用常量保留在内存中的空数组
同样,当所讨论的变量实际上只是一个空数组时,这不会产生太大的影响,但当您处理更大规模的数据集时,这确实会产生影响。这取决于productList和customerList的使用方式。这是这里唯一重要的事情,问题不包括它。似乎在后一种情况下,重新渲染发生的次数比前一种要少-请,提供说明。两者都用于显示,并且可以以不变的方式删除。无法想象这样一种情况,即您希望两者共享对同一阵列的引用而不是共享引用,但在每次调用MapStateTrops
时,它都会创建一个新的阵列引用,而在后一种方法使用相同的数组引用,这样可以减少不必要的重新渲染,这是良好的常规编程上下文,但特定于react,因为react比较内存引用以检测更改,所以在后一种情况下,productList和customerList只会在新数据时更改,因此这可能会减少不必要的重新渲染