Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 直接使用数组还是将数组赋给变量并使用它更好?_Javascript_Reactjs_React Native_Redux - Fatal编程技术网

Javascript 直接使用数组还是将数组赋给变量并使用它更好?

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

假设我有一个MapStateTops作为

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只会在新数据时更改,因此这可能会减少不必要的重新渲染