codepen地址
https://codepen.io/xiaodun/pen/MLPbym?editors=0010
this.setState({})
上述调用会触发render函数,
1.这意味着即使不在state上的数据,只要发生变化也可以更新模板。
addOutList=()=>{
list.push(1);
this.setState({})
}
上面的list是声明在类外部的,对应的模板代码为
{
list.map((el,index)=><div>外面list {index}</div> )
}
2.可以直接更改state上的数据,然后调用setState即可。
通过测试发现,即使setState方法里指明具体的属性,还是会同步更新已经变化了的,证明不会有性能问题。
addInnerList=()=>{
this.state.list.push(1);
this.setState({
name:13
})
}
改变list的引用依然会更新。
总结
至于会不会有其他问题,暂时没有发现,因为看到的写法都是指明具体要更新的属性。
网友评论