猿问

react组件的状态是应该放在组件state还是其他第三方状态器里[比如redux-store]中?

之前项目是state和redux混合使用. 区分的逻辑大多是:

  1. 该状态是否有其他组件共享. 比如登录用户的角色信息. 许多组件根据角色的不同有不同的渲染.

  2. 当销毁该组件后, 重新加载该组件是否需要初始化为上次的状态. 比如上次的查询条件或结果. 切换路由后再切换回来希望仍看到上次的数据.

后来写起来很混乱, 干脆全部使用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

求大神解惑


海绵宝宝撒
浏览 918回答 1
1回答

ibeautiful

reselect正是你需要的。reselect
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答