作者usagi719 (AztecBunny)
看板Ajax
标题[问题] React数据流的问题
时间Mon Jun 6 22:07:18 2022
我知道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里面的生命周期函数要怎麽处理?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.161.37.11 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1654524440.A.35B.html
1F:→ brianwu1201: 1. 关键字:React.memo 06/07 06:31
2F:→ brianwu1201: 2. 只在这个元件作用的 state 没有放到 global state 06/07 06:37
3F:→ brianwu1201: (Redux) 的必要 06/07 06:37
4F:→ brianwu1201: 3. 没有无脑放global state 的话,就不会有这个问题 06/07 06:38
6F:→ jobintan: 可以参考下,当初入坑react也是class component,也有遇 06/22 11:46
7F:→ jobintan: 到要将class life cyele用function hooks重构的事。 06/22 11:47
8F:→ jobintan: 话说Redux global state真的超好用的,如果有遇到需要 06/22 11:49
9F:→ jobintan: 跨组件传递state的话,就知道好用了。 06/22 11:50
10F:推 b85040312: hook 的话何不用 useContext 06/22 15:35