Skip to content

类组件的更新 ​

本节目标:理解“类组件的更新”的核心思路,并能把它用于实际开发或面试表达。 先讲类组件的更新,函数组件的更新放到hooks中去了解;

在组件挂载之后,如果组件的props或自身的State发生了变化,如

  • 如接口返回数据;
  • 交互事件的发生;

会打破组件的稳定状态,从而需要更新组件,进而需要更新dom;

组件状态

  • 组件的数据来源有两个地方,分别是属性对象和状态对象
  • 属性是父组件传递过来的;
  • 状态是自己内部的,改变状态唯一的方式就是setState;;
  • 属性和状态的变化都会影响视图更新;
  • 不要直接修改 State,构造函数是唯一可以给 this.state 赋值的地方;

先了解类组件自身State值的变化引起的更新;我们一般会在:

  • 事件回调
  • 生命周期函数中

更新类组件的状态,更新类组件的状态必须使用setState方法;

State 的更新会被合并 当你调用 setState() 的时候,React 会把你提供的对象合并到当前的 state;

  • State 的更新可能是异步的
    • 出于性能考虑,React 可能会把多个 setState() 调用合并成一个调用
    • 因为 this.props 和 this.state 可能会异步更新,所以你不要依赖他们的值来更新下一个状态;
    • 可以让 setState() 接收一个函数而不是一个对象。这个函数用上一个 state 作为第一个参数;

有时异步更新,有时同步更新的原因在于两种更新方式不在同一个事件循环里;

本站总访问 — 次