Fe-interview: [react] 什么时候使用状态管理器?

Created on 18 Jul 2019  ·  9Comments  ·  Source: haizlin/fe-interview

[react] 什么时候使用状态管理器?

react

Most helpful comment

摘抄阮老师的
从项目的整体看

  1. 用户的使用方式复杂
    2.不同身份的用户有不同的使用方式(比如普通用户和管理员)
    3.多个用户之间可以协作
    4.与服务器大量交互,或者使用了WebSocket
    5.View要从多个来源获取数据
    从组件角度看
    1.某个组件的状态,需要共享
    2.某个状态需要在任何地方都可以拿到
    3.一个组件需要改变全局状态
    4.一个组件需要改变另一个组件的状态

All 9 comments

通过提升单个组件的复杂度,实现组件通讯

同问!
1.页面级组件间不需要通讯,共享状态。
2.没有全局的变量共享。
3.小型应用,可通过context满足简单需求

摘抄阮老师的
从项目的整体看

  1. 用户的使用方式复杂
    2.不同身份的用户有不同的使用方式(比如普通用户和管理员)
    3.多个用户之间可以协作
    4.与服务器大量交互,或者使用了WebSocket
    5.View要从多个来源获取数据
    从组件角度看
    1.某个组件的状态,需要共享
    2.某个状态需要在任何地方都可以拿到
    3.一个组件需要改变全局状态
    4.一个组件需要改变另一个组件的状态
  1. 有相当大量的,随时间变化的数据
  2. state需要有一个单一可靠数据源
  3. 所有state放在顶层组件已经无法满足需求了
  1. 要维护大量与服务器交互的数据
  2. 数据要多个页面共享
  3. 组件状态要多个组件内共享

当状态提升提升不能够满足开发需求,状态树并不总是以一种线性的,单向的方式流动。就需要使用状态管理器。

从组件的角度考虑:组件间的状态共享过多,与服务器交互的数据过多,并且组件层级过深,状态提升或者context已经不适用的情况下,就可以考虑使用状态管理器

当程序中出现大量不相干组件需要互相通信而现有的组件间通信技术(状态提升、context、storage等)不能很好的解决时,一个状态管理器作为中间者,可以降低组件间通信的复杂度。(购房者、买房者、中介)一样的场景。

所以面试的时候该怎么回答,我是刚入门的小菜鸡,怎么样回答会比较通俗易懂又容易记住答案呢

Was this page helpful?
0 / 5 - 0 ratings