React生命周期

作者: 踏云小子 | 来源:发表于2017-11-15 17:09 被阅读5次

React生命周期分为装载更新卸载异常捕获

装载(Mounting)

组件被插入到DOM中

  • getDefaultProps()
    声明默认的属性,ES6之前是这样
var Greeting = createReactClass({
  getDefaultProps: function() {
    return {
      name: 'Mary'
    };
  },

  // ...

});

ES6是这样

class Greeting extends React.Component {
  // ...
}

Greeting.defaultProps = {
  name: 'Mary'
};
  • getInitialState()
    初始化state,ES6是constructor()

  • componentWillMount()

  • render()

  • componentDidMount()
    客户端有这步,而服务端则没有

更新(Updating)

组件重新渲染以更新DOM(state或props变化触发)

  • componentWillReceiveProps(nextProps)
    state变化可能不会触发它,因为state变化不一定组件的props变化
    nextProps为新接收到的属性
  • shouldComponentUpdate()
    返回true才会触发下面的componentWillUpdate、render、componentDidUpdate函数,false则不会
  • componentWillUpdate()
  • render()
  • componentDidUpdate()

卸载(Unmounting)

  • componentWillUnmount()

异常捕获(Error handling)

  • componentDidCatch()

图表总结

生命周期 调用次数 能否使用 setSate()
getDefaultProps 1(全局调用一次)
getInitialState 1
componentWillMount 1
render >=1
componentDidMount 1
componentWillReceiveProps >=0
shouldComponentUpdate >=0
componentWillUpdate >=0
componentDidUpdate 1

相关文章

  • React概念图

    React概念图 React组件生命周期概念图 参考文档:React入门教程 组件生命周期React:组件生命周期...

  • React基础篇之组件的生命周期

    引出生命周期 react生命周期(旧) react生命周期(新) getSnapshotBeforeUpdate的...

  • React生命周期

    React v16.0前的生命周期 React v16.4+ 的生命周期图 React v16.9后这些生命周期钩...

  • React v16 生命周期

    React 16 生命周期 React 16.3 新增的生命周期方法 逐渐废弃的生命周期方法: 一般将生命周期分成...

  • 学习并实现react (4)

    实现生命周期 生命周期介绍 React 生命周期图 React 子组件在父组件下的生命周期流程 实现 compon...

  • React面试题 整理脑图

    react基础 React生命周期 react-router react进阶 react Hooks redux 其他

  • react/vue常见问题整理

    一、react 1. react生命周期 react 16生命周期相对于15的变化:componentWillMo...

  • React 组件生命周期

    组件生命周期 参考阅读: component-lifecycle react组件生命周期过程说明 react 组件...

  • 《深入React技术栈》学习笔记Ⅲ

    以下的生命周期都是在 React 15 的生命周期, React 16 的生命周期 API 已经发生变化。Reac...

  • React总结

    [toc] 1.React组件生命周期 1.1 生命周期图 组件的生命周期的图如下: 具体可参考React 组件生...

网友评论

    本文标题:React生命周期

    本文链接:https://www.haomeiwen.com/subject/zktimxtx.html