改变数据有两种方式
1.直接修改
var player = {score: 1, name: 'Tom'};
player.score = 2;
2.新数据替换旧数据
var player = {score: 1, name: 'Tom'};
var newPlayer = {...player, score: 2};
不直接修改的优点
-
简化复杂的功能(可以做撤销和恢复功能)
-
跟踪数据改变:直接修改数据需要判断修改后的数据是否和原数据一致,即需要遍历整个对象树。而对象变为了一个新的对象,则一定改变了。
-
确定在 React 中何时重新渲染:便于建立pure components,可以很轻松的确定不可变数据是否发生变化,以及确定何时对组件重新渲染