• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >心得技巧 > React 5 生命周期

React 5 生命周期

作者:小仙女儿的魔仙堡 字体:[增加 减小] 来源:互联网 时间:2017-08-21

本文主要包含react,生命周期等相关知识,小仙女儿的魔仙堡希望在学习及工作中可以帮助到您

生命周期简介

组件的生命周期分成三个状态:

  • Mounting:已插入真实 DOM

  • Updating:正在被重新渲染

  • Unmounting:已移出真实 DOM

React 为每个状态都提供了两种处理函数,will 函数在进入状态之前调用,did 函数在进入状态之后调用,三种状态共计五种处理函数。

  • componentWillMount()
    • componentDidMount()
    • componentWillUpdate(object nextProps, object nextState)
    • componentDidUpdate(object prevProps, object prevState)
    • componentWillUnmount()

此外,React 还提供两种特殊状态的处理函数。

  • componentWillReceiveProps(object nextProps):已加载组件收到新的参数时调用
    • shouldComponentUpdate(object nextProps, object nextState):组件判断是否重新渲染时调用

react生命周期流程

  1. 初始化, 首次render

    • getDefaultProps() 用来设置组件属性的默认值,在组件被建立时候就立即调用,所有实例都可以共享这些属性。

    • getInitialState() 用于定义初始状态,也不可以使用this.state和setState。

    • componentWillMount() 只在初始化时候被调用一次,可以使用setState方法,会立即更新state,然后接着进行render。

    • render() 特别注意此方法里面不可以使用setState。如果其中包含其他的子组件,那么子组件的生命周期才开始进行。

    • componentDidmount() 在子组件也都加载完毕后执行,在react中DOM渲染完成,此时才可以操作dom。(如果需要通过id,class选取dom时,在此方法里使用)。

      1. props发生改变时更新
    • componentWillReceiveProps(nextProps)

    componentWillReceiveProps方法可以比较this.props和nextProps来看是否发生了变化,然后可以进行setState等操作。

    注意只要父组件此方法触发,那么子组件也会触发,也就是说父组件更新,子组件也会跟着更新。

    • shouldComponentUpdate(nextProps, nextState)

    shouldComponentUpdate 方法在接收了新的props或state后触发,你可以通过返回true或false来控制后面的生命周期流程是否触发。

    • componentWillUpdate(nextProps, nextState)

    componentWillUpdate在props或state改变或shouldComponentUpdate返回true后触发。不可在其中使用setState。

    • render()

    重新渲染。

    • componentDidupdate(prevProps, prevState)

    会等子组件也都更新完后才触发。

    1. state发生改变时候更新

      • shouldComponentUpdate(nextProps, nextState)

    shouldComponentUpdate 方法在setState后state发生改变后触发,你可以通过返回true或false来控制后面的生命周期流程是否触发。

    • componentWillUpdate(nextProps, nextState)

    componentWillUpdate在state改变或shouldComponentUpdate返回true后触发。不可在其中使用setState。

    • render()

    重新渲染。

    • componentDidupdate(prevProps, prevState)

    会等子组件也都更新完后才触发。


使用redux时候情况

在使用redux做状态管理时候,基本不需要透过生命周期去做setState这样的状态管理了,基本都是用props来传递来重新渲染,需要注意的仅仅是在哪个生命周期时候触发action,比如需要进行ajax请求时候一般都是在componentDidMount和componentWillReceiveProps时候进行,在reducer中处理完,然后在通过props传入组件执行组件的更新周期。


参考资料

  1. 阮一峰react入门实例

  2. react生命周期总结

您可能想查找下面的文章:

  • React 5 生命周期
  • 浅谈React
  • 一个完整的react router 4.0嵌套路由的例子
  • 打包 React 项目

相关文章

  • 2018-08-23想进阶成PPT 高手?得先学会这些高级动画特性!
  • 2018-08-23如何做出用户不反感的错误提示?来看这篇总结!
  • 2017-08-06Bootstrap之所以广泛流传的11大原因
  • 2018-08-23语音交互设计中,如何创建角色画像?
  • 2018-08-23从景观到 AI 产品,这个设计师自己开发了一个「招行版鲁班」!
  • 2018-08-23经典好文!如何为拇指做设计?
  • 2018-08-23绝对干货!UI设计师最需要了解的设计工作流程
  • 2017-08-06让你的网站IE8浏览自动用IE7兼容模式
  • 2018-08-23为什么你的用户测试是无效的? 来看高手的方法!
  • 2017-08-06li行间距大(IE中多了5个像素)的解决方法

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • UCenter Home 站点添加统计代码
    • PS快速入门?看这篇经典的万字笔记就够了!
    • 复盘实战案例:引导用户开通唯品金融五部曲
    • 不是中国才有的特色:文化差异下的网页开发
    • 内部教程!超详细的支付宝设计规范之配色篇
    • 从哈佛到谷歌,专访人工智能公司Rokid 首席设计师姜公略
    • UI新手必备!iOS+Android的切图与标注方法
    • 正在疯狂流行的等轴测图标,千万不要错过
    • 10分钟科普!那些不明觉历的“交互设计方法论”到底是什么?
    • div css命名规范 css class命名规则(符合SEO规范)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有