[问题] React数据流的问题

楼主: usagi719 (AztecBunny)   2022-06-06 22:07:18
我知道React数据更新是父组件的state改变,
所有子组件都会重新render,
现在父组件上有一个简单的开关,
点一下红色再点一下变绿色这种,
1.以前用class在所有子组件上,
写shouldComponentUpdate停止子组件因此重新render,
现在改用hook要怎么写?
2.接着我尝试了Redux统一所有state在store里,
那么这个小开关的state,我该分开用hook吗?
还是不论大小所有组件的state都放在store里?
3.现在我又尝试了ReduxToolkit + React-Redux,
以前用connect获取store的state跟dispatch action出去,
现在改用useSelector跟useDispatch了,这两个可以理解redux的hook版?
那又是相同的问题...
就是怎么让,只有改变相关数据的父组件更新,没改变的子组件不用更新render
总结来说,我遇到的问题来源就是
class未来要逐步被淘汰了?那以往写在class里面的生命周期函数要怎么处理?
作者: brianwu1201 (bunny29)   2022-06-07 06:31:00
1. 关键字:React.memo2. 只在这个元件作用的 state 没有放到 global state(Redux) 的必要3. 没有无脑放global state 的话,就不会有这个问题
作者: jobintan (Robin Artemstein)   2022-06-22 11:46:00
https://bit.ly/3OvpSR8可以参考下,当初入坑react也是class component,也有遇到要将class life cyele用function hooks重构的事。话说Redux global state真的超好用的,如果有遇到需要跨组件传递state的话,就知道好用了。
作者: b85040312 (万年newman)   2022-06-22 15:35:00
hook 的话何不用 useContext

Links booklink

Contact Us: admin [ a t ] ucptt.com