hook 目的
1 .在不编写class的情况下使用state以及其他React特性
2 .无需修改组件结构的状态情况下复用逻辑
3 .去掉生命周期函数:生命周期里面钩子函数逻辑比较乱
4 .去掉class,不管是无状态组件还是有状态组件,都可以使用function编写,许多function类型的组件后期需要加自己的state,就要很麻烦的改成class
5 .不需要在处理this
6 .复用一个有状态的组件比较麻烦
7 .共享一个全局状态
8 .复杂组件变得难以理解
1 .一个组件逐渐会被状态逻辑和副作用充斥,每个生命周期常常包含一些不太相关的逻辑
2 .相关逻辑的代码可能会分布在好几个生命周期内
3 .组件无法拆分成更小的粒度
useEffect
1 .react首次渲染和之后的每次渲染都会调动一遍传递给useEffect的函数,而我们之前必须在两个生命周期里面分别来表示首次渲染,和之后更新导致的重新渲染
2 .useEffect中定义的副作用函数的执行不会阻碍浏览器更新视图,这些函数都是异步执行的。如果有一些必须要在同步发生,那么再说
3 .
网友评论