- state 用来存储组件内的状态
constructor () {
super()
this.state = { isLiked: false }
}
- setState用来修改state状态
直接通过this.state.xxx = xxx来修改state状态的话,react无法感知状态改变,所以不会更新组件
(1).. setState()函数接收对象参数
this.setState({
isLiked: true
})
(2).. setState()函数接收函数参数
this.setState((prevState) => {
return { isLiked: true }
})
如果多次调用setState, React.js 内部会把 JavaScript 事件循环中的消息队列的同一个消息中的 setState 都进行合并以后再重新渲染组件。
因为这个,得出两点需要注意的事项:
- 不用担心多次setState会影响性能
- 如果当前setState需要依赖上次setState的状态,那么最好使用函数参数进行setState,因为这个函数参数可以接受一个参数就是当修改前的state里面的状态信息。
网友评论