之前项目是state和redux混合使用. 区分的逻辑大多是:
该状态是否有其他组件共享. 比如登录用户的角色信息. 许多组件根据角色的不同有不同的渲染.
当销毁该组件后, 重新加载该组件是否需要初始化为上次的状态. 比如上次的查询条件或结果. 切换路由后再切换回来希望仍看到上次的数据.
后来写起来很混乱, 干脆全部使用redux废弃了所有状态组件. 触发要使用生命周期, 否则全都是函数组件了.
不过最近在思考一个问题.
如果存在组件嵌套的情况, 比如
function Father(props){ const { a , b } = props; return { <div> <A state={a}/> <B state={b}/> </div> } } function B(props) { const { c } = props; return { <div> <C state={c} /> </div> } }
如果connect在Father上的store任意部分变化, 比如store.b.c变化, 会造成其他组件的重新渲染. 这样性能会不会不如放在state上好. 如果store.b.c是存在B的state上, 那么应该只会有组件B重新刷新, 不会影响到Father和A
求大神解惑
ibeautiful
相关分类