const [data, setData ] = useState()
usestate是声明在组件内部的数据,相当于组件内部store数上的数据
更改他的唯一方式就是通过setData()来更改,
state数据更改,会触发页面上的state变化,会触发组件重新render()
如果新的 state 需要通过使用先前的 state 计算得出,那么可以将函数传递给 setState。该函数将接收先前的 state,并返回一个更新后的值。
setData( state => state + 1)
react触发render的三种方法
一、通过setState
二、this.forceUpdate()
三、通过状态管理,如mobx,redux等
四、props改变,组件重新渲染
setState改变后,改变值,没有触发render()
https://blog.csdn.net/weixin_45621877/article/details/108720014
https://blog.csdn.net/weixin_44730897/article/details/106526136
state hook设置值,如果引用地址不变,是不触发重新渲染的,但是值是设置进去了
react中数组如果引用地址不变,是不触发重新渲染的,但是值是设置进去了
这里要根据react的渲染机制源码,因为react 会判断旧状态和新状态是否有变化,如果没有变化就不渲染,所以要改变地址告诉render 是新状态要重新渲染