美文网首页
React生命周期

React生命周期

作者: 这里王工头 | 来源:发表于2019-02-12 23:24 被阅读0次

欢迎访问我的博客https://qqqww.com,祝码农同胞们早日走上人生巅峰,迎娶白富美~~~

1 前言

学习React,生命周期的各个组件是必须要学习的,对于事件触发的时机至关重要,也决定能不能写出高性能的组件,对于React的生命周期,我还需要更多的学习,多看文档,多写测试code

2 图解React生命周期

[图片上传失败...(image-8f683b-1549985866645)]

3 组件详解

看上图,React生命周期主要分为三个阶段:

  1. Mounting:初始化阶段
  2. Updating:重新渲染阶段
  3. umounting:销毁阶段

关于组件详解,详情请参照官网https://reactjs.org/

3.1 初始化阶段

getDefaultProps()

设置默认的props值,getDefaultProps()方法被调用一次并缓存

getInitialState()

可直接在constructor中定义this.state,只调用一次,可以访问this.props

componentWillMount()

将要装载,在render之前调用,且整个生命周期只调用一次,此时可修改this.state强调是在每一个组件render之前立即调用

render()

初始化的关键环节,此时创建虚拟DOM,并进行diff算法,重新渲染DOM树,此时不能修改this.state

另外,关于虚拟DOMdiff算法可以看我的另一篇文章虚拟DOM与Diff算法

componentDidMount()

还记得上面那个componentWillMount()将要装载吗?这里已经装载完成了,在render()之后调用,并且强调是在所有的子组件都render完之后才调用,常在这里建立定时器

3.2 重新渲染阶段

componentWillReceiveProps(newProps)

当组件需要接受新的props值时调用

shouldComponentUpdate(newProps, newState)

虚拟DOMdiff算法很重要的环节,返回值是一个布尔值,进行diff算法对比新旧两棵DOM树的propsstate是否相同,若相同,则返回false,不需要更新,否则,更新

componentWillUpdate(newProps, newState)

在组件即将要更新propsstate但还没有render时调用,此时可以修改this.state

render()

在重新渲染阶段的render根据更新的propsstate值进行组件重新渲染

componentDidUpdate()

组件更新完成后调用,在render之后

3.3 销毁阶段

componentWillUnmount()

组件将要卸载调用,此时清除事件监听或者定时器或者一些不必要的变量等,防止内存泄漏

4 参考文章

相关文章

  • 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/rdileqtx.html