-
useState():👉详情 (必须“有条件地调用”;注意避免冗余状态的产生)
关于useState的两种使用方式的区别:👉详情
关于batch机制:有条件地调用一些状态的set方法时,会等到这些状态的set方法都执行完后,再重新渲染。
数组的更新:👉详情
对象的更新:👉详情
react中状态为对象和数组时都是只读的,不可以直接修改其值,即应当避免“突变”的产生。(react中只能对刚刚创建的对象进行“突变”,当其成为一个状态时,则需要在修改其前为其创建一个副本。)
解决方法一:先为其创建副本,再对副本进行修改,最后再使用set方法将副本的值设置为对象或者数组的值。
解决方法二:直接在set方法内对其进行解构,直接把新值赋给对应改变的值。(对于直接修改数组的浅拷贝后得到的新数组,由于其和原数组指向同一个对象,故也是一种“突变”。)
参考资料:👉详情 -
createContext():👉详情 (用于创建上下文)
-
useContext():👉详情 (用于读取上下文)
示例参考:👉详情 -
useRef():👉详情 (应用场景:👉详情)
注意事项的第三点的原因即为注意事项的第二点。 -
useReducer():👉详情(一般用于需要由用户“主动”更新的状态)
关于useReducer的两种不同的使用方法:👉详情
-
useEffect():副作用通常属于事件处理程序。
-
啊这:
-
啊这:
-
啊这:
-
啊这: