react项目中该不该用redux

笔记,参考《React.js实战》

组件中变量应不应该作为组件state,可通过下面的4条依据进行判断:

  • 这个变量是否是通过Props从父组件中获取?如果是,那么它不是一个状态。·
  • 这个变量是否在组件的整个生命周期中都保持不变?如果是,那么它不是一个状态。
  • 这个变量是否可以通过其他状态(state)或者属性(Props)计算得到?如果是,那么它不是一个状态。
  • 这个变量是否在组件的render方法中使用?如果不是,那么它不是一个状态。这种情况下,这个变量更适合定义为组件的一个普通属性,例如组件中用到的定时器,就应该直接定义为this.timer,而不是this.state.timer。

以下几种情况下可能根本不需要Redux:

  • 项目中已经有一个预先定义的方式来共享和安排组件状态。
  • 应用程序只包含大部分简单的操作(如UI更改),则这些操作并不一定是Redux存储的一部分,可以在组件级别进行处理。
  • 不需要管理服务器端事件(SSE)、不需要与服务器大量交互,也没有使用websockets。
  • 可以从每个视图的单个数据源获取数据。

从组件的角度考虑,Redux适用于如下场景:

  • 某个组件的状态需要共享。
  • 某个状态需要在任何地方都可以拿到。
  • 一个组件需要改变全局状态。
  • 一个组件需要改变另一个组件的状态。
posted @ 2020-10-08 13:46  sanhuamao  阅读(583)  评论(0编辑  收藏  举报