1.setState更新是异步更新的。
2.使用箭头函数的语法可以拿到最新的state和props
this.setState(
(state, props)=> {
// 拿到最新的值后执行的操作
}
)
3.该函数还包含第二个参数,是一个回调函数,会在更新状态后立即进行执行。
this.setState(
(state, props)=> {
// 拿到最新的值后执行的操作
}, ()=> { console.log('状态更新完成后将立即执行')}
)
4.setState()的作用:
(1) 修改state
(2) 更新组件(ui)
父组件进行更新时,只会重新渲染当前组件子树(自己及自己下面的子组件)。
这种时候为了避免不必要的渲染,一般使用钩子函数shouldComponentUpdate(nextProps, nextState)来判断子组件是否进行了数据更新(返回值是false或者true,参数表示最新的prop和state),该函数会在render()之前进行执行,没有则不进行更新。