useState和setState的区别

共性

useState和setState都是用来改变变量然后让界面同步渲染的方法,他们都是异步操作,不能直接获取state的值。

区别

参数:
setState(参数1, 参数2); // 参数1表示要更改的数据,参数2是回调函数,可以拿到最新的数据
useState(参数); // useState只有一个参数,表示初始值

合并:
setState会自动浅合并,useState不会。
this.setState({name: 'sifan'}) => this.setState({...this.state})

回调:
setState可以在它的第二个参数中拿到最新的state,useState只有配合useEffect的使用

state什么时候是同步,什么时候是异步

如果在react能控制的时候就是异步,例如componentDidmount等
如果在js能控制得时候就是同步,例如原生元素绑定事件,setTimeout等

posted @ 2022-12-28 11:41  卿六  阅读(843)  评论(0编辑  收藏  举报