react中setState为何使用不可变值

在修改状态时千万不能改变原来的状态state 怎么理解这句话呢?

比如 在组件状态state中定义一个数组arr:[1,2,3,4]

后面每次点击一个按钮,都给原数组加个100,

可以用 this.state.arr.concat(100) 这样不会改变原来的数组arr,r如果用push就会改变原来的值,之所以这样做是因为在shouldMountUpdate生命周期a中会将要改变的值与之前的值做个比较来确定是否改变视图,以这种方式来优化性能,所有切记,这个非常重要!

posted @ 2020-04-19 13:14  竹子up  阅读(1690)  评论(0编辑  收藏  举报