当前位置: 首页 > news >正文

欢迎访问中国建设银行网站个人客户自己如何做一个网络平台

欢迎访问中国建设银行网站个人客户,自己如何做一个网络平台,网站没有备案可以做seo优化吗,发布软文的平台有哪些类组件生命周期方法 constructor 在类组件挂载的时候调用,用于构建一个类组件实例。 在构建类组件实例的时候, 会先执行基类构造函数( React.Component ) 使用父组件传入的 props 来初始化 props 属性, 然后执行自定义构造函数来初始化 state…

类组件生命周期方法

  • constructor

    在类组件挂载的时候调用,用于构建一个类组件实例。

    在构建类组件实例的时候, 会先执行基类构造函数( React.Component ) 使用父组件传入的 props 来初始化 props 属性, 然后执行自定义构造函数来初始化 state 和 事件绑定。 如果类组件不需要初始化 state 和 事件绑定,就不需要自定义构造函数。

    父组件的 constructor 先触发, 子组件的 constructor 后触发。兄弟组件, constructor 按组件位置的先后顺序按序触发

  • componentWillMount

    挂载阶段, 组件实例构建完成(props、state 属性初始化完成)以后,render 方法执行之前执行。

    如果类组件提供了 getDerivedStateFromProps 方法, componentWillMount 不会触发,会抛出警告。

    父组件的 componentWillMount 先触发, 子组件的 componentWillMount 后触发。兄弟组件, componentWillMount 按组件位置的先后顺序按序触发。

  • static getDerivedStateFromProps(props, state)

    挂载(mount)/更新(update)阶段,在类组件实例的 state、props 属性初始化(更新)完成以后,render 方法执行以前执行。

    执行时, 会传入当前 props 和 state,返回一个新的 state 来更新 state。

    如果类组件实例没有定义 state 属性, 使用 getDerivedStateFromProps 会抛出警告

    getDerivedStateFromProps 返回的 state 会和组件原来的 state 做合并更新处理(Object.assign)。如果返回 null 或者没有返回值, 会抛出警告。

    父组件的 getDerivedStateFromProps 先触发, 子组件的 getDerivedStateFromProps 后触发。兄弟组件, getDerivedStateFromProps 按组件位置的先后顺序按序触发。

    getDerivedStateFromProps 先于 shouldComponentUpdate 触发,即只要组件挂载、组件更新、父组件更新, 都会触发。

  • shouldComponentUpdate(newProps, newState, newContext)

    更新阶段,如果组件不是强制更新且定义了 shouldComponentUpdate 方方法, shouldComponentUpdate 方法会触发。

    shouldComponentUpdate 执行时, 需要传入 newrops、newState、newContext 和 组件实例原来的 props、state、context 做比较,然后根据比较结果返回一个 boolean 类型的值。

    如果返回 false, 组件不需要更新, componentWillUpdate、 render 、componentDidUpdate 都不会触发; 如果返回 true, 组件需要更新, componentWillUpdate、render、componentDidUpdate 都会触发。

    PureComponent 有内置的 shouldComponentUpdate, 会对新旧 props、 state 做浅层比较。如果 props、state 的结构比较复杂, 比较结果可能会不准确

    如果需要强制更新, shouldComponentUpdate 不会触发

    父组件的 shouldComponentUpdate 先触发, 子组件的 shouldComponentUpdate 后触发。兄弟组件, componentWillUpdate 按组件位置的先后顺序按序触发。

  • componentWillUpdate

    更新阶段,在获取 newProps、newState、newContext 以后,组件实例的 props、state、 context 更新以及render 方法执行之前执行。

    如果类组件提供了 getDerivedStateFromProps 方法, componentWillUpdate 不会触发,会抛出警告。

    父组件的 componentWillUpdate 先触发, 子组件的 componentWillUpdate 后触发。兄弟组件, componentWillUpdate 按组件位置的先后顺序按序触发。

  • componentWillReceiveProps(newProps, newContext)

    更新阶段, 如果子组件的 props(或者 context) 发生变化且定义了 coponentWillReceiveProps, 会触发 componentWillReveiveProps 的执行。

    componentWillReceiveProps 在获取 newProps、newState、newContext 以后,组件实例的 props、state、 context 更新以及 render 方法执行之前执行。

    如果类组件提供了 getDerivedStateFromProps 方法, componentWillReceiveProps 不会触发,会抛出警告。

    componentWillReceiveProps 先于 shouldComponentUpdate、 componentWillUpdate 执行。

    父组件的 componentWillReceiveProps 先触发, 子组件的 componentWillReceiveProps 后触发。兄弟组件, componentWillReceiveProps 按组件位置的先后顺序按序触发。

    只有子组件的 props、 context 发生变化, 才会触发 componentWillReceiveProps。 通过 setState 触发子组件更新时, 不会触发 componentWillReceiveProps

    在 componentWillReceiveProps 中修改 state ,不要直接修改,要使用 setState 修改, 否则会抛出警告。

  • render

    将类组件 template 转化为一颗 react element tree。

    在挂载阶段肯定会触发。在更新阶段,如果是强制更新或者没有定义 shouldComponentUpdate, 会触发;如果不是强制更新且定义了 sholdComponentUpdate, 会根据 shouldComponentUpdate 的返回值来决定是否触发,false 不触发, true 触发。

  • componentDidMount

    挂载阶段, 整个 react 应用对应的 template 已经转化为 dom 节点, 并添加到容器 dom 节点以后调用。

    子组件的 componentDidMount 先触发, 父组件的 componentDidMount 后触发。兄弟组件, componentDidMount 按组件位置的先后顺序按序触发。

    componentDidMount 触发的时候, 可以操作 dom 节点, ref 也已经初始化成功

  • getSnapshotBeforeUpdate(preProps, prevState)

    更新阶段调用。此时整个 react 应用对应的 template 已经转化为 dom 节点, 但是还没有添加到容器 dom 节点中。

    getSnapshotBeforeUpdate 的返回值会作为 componentDidUpdate 的第三个参数。

    getSnapshotBeforeUpdate 先于 componentDidUpdate 执行。

    子组件的 getSnapshotBeforeUpdate 先触发, 父组件的 getSnapshotBeforeUpdate 后触发。兄弟组件, getSnapshotBeforeUpdate 按组件位置的先后顺序按序触发。

    componentDidUpdate 触发的时候, 不可以操作新的 dom 节点。

  • componentDidUpdate(prevProps, prevState, snapshot)

    更新阶段, 整个 react 应用对应的 template 已经转化为 dom 节点, 并添加到容器 dom 节点以后调用。

    触发的时候, 会传入 oldProps、 oldState。

    子组件的 componentDidUpdate 先触发, 父组件的 componentDidUpdate 后触发。兄弟组件, componentDidUpdate 按组件位置的先后顺序按序触发。

    componentDidUpdate 触发的时候, 可以操作新的 dom 节点, ref 也已经初始化成功

    不要在 componentDidUpdate 直接使用 setState,否则会导致死循环

  • componentWillUnmount

    更新阶段, 组件卸载及销毁之前直接调用。

    调用时,组件对应的 dom 节点还没有移除。

    componentWillUnmount 触发以后, componentDidiUpdate 就不会触发了

http://www.yayakq.cn/news/377071/

相关文章:

  • 做网站的公司大学生创意产品设计方案
  • ftp服务器设置网站主页个人站长做网站
  • 外贸企业网站推广方案登录网站显示系统维护怎么做
  • 手机网站设计公做网站相关人员
  • 门户网站制作流程西安网站开发的未来发展
  • 设计素材网站那个好网站如何进行备案
  • 上海工程建设执业资格注册中心网站网站开发要用到的工具
  • 做设计什么兼职网站怎么做离线网站
  • 如何删除网站后台的文章彩票做网站
  • 怒江企业网站建设服装店设计
  • 网站下载视频的方法天天网站建设
  • 凡科网官方网站城固县网站建设
  • 长沙专业的网站设计网页素材免费下载
  • 苏州集团网站制作设计深圳做网站推广公司哪家好
  • php 可以自己做网站吗小程序云开发教程
  • 推广网站平台有哪些保定做网站设计
  • 做封面的软件ps下载网站环保主题静态网站模板
  • 建设银行+贷款+查询+网站给我一个网站吧
  • 如何建设个人免费网站教程视频自己做网站新手入门
  • 网站建设公司行情微信小程序打不开
  • 长安网站建设wordpress 去掉 index.php
  • 国外设计网站d江苏专业网站建设
  • 银川市住房和城乡建设网站河南餐饮网站建设
  • 搭建国外网站的步骤有口碑的南昌网站制作
  • 网站设计公司西安网站如何添加图标
  • 网站 第三方登录php网站开发演讲稿
  • 网站登录界面源码网页微信版官方下载
  • 自助快速建站怎样免费做彩票网站
  • 招标网站怎么做做网站成本
  • 大良企业网站建设新浪 sae 安装 wordpress 如何上传模板?