React 组件的生命周期

字节银月师
• 阅读 809
  1. 效果

需求:定义组件实现以下功能:

  1. 让指定的文本做显示 / 隐藏的渐变动画
  2. 从完全可见,到彻底消失,耗时2S
  3. 点击“不活了”按钮从界面中卸载组件
  4. 理解

1)组件从创建到死亡它会经历一些特定的阶段。

2)React组件中包含一系列勾子函数(生命周期回调函数), 会在特定的时刻调用。

3)我们在定义组件时,会在特定的生命周期回调函数中,做特定的工作。

  1. 生命周期流程图(旧)

初始化阶段: 由ReactDOM.render()触发---初次渲染

constructor()

componentWillMount()

render()

componentDidMount()

更新阶段: 由组件内部this.setSate()或父组件重新render触发

shouldComponentUpdate()

componentWillUpdate()

render()

componentDidUpdate()

卸载组件: 由ReactDOM.unmountComponentAtNode()触发

componentWillUnmount()

  1. 生命周期流程图(新)

初始化阶段: 由ReactDOM.render()触发---初次渲染

constructor()

getDerivedStateFromProps

render()

componentDidMount()

更新阶段: 由组件内部this.setSate()或父组件重新render触发

getDerivedStateFromProps

shouldComponentUpdate()

render()

getSnapshotBeforeUpdate

componentDidUpdate()

卸载组件: 由ReactDOM.unmountComponentAtNode()触发

componentWillUnmount()

  1. 重要的勾子

render:初始化渲染或更新渲染调用

componentDidMount:开启监听, 发送ajax请求

componentWillUnmount:做一些收尾工作, 如: 清理定时器

  1. 即将废弃的勾子

componentWillMount

componentWillReceiveProps

componentWillUpdate

现在使用会出现警告,下一个大版本需要加上UNSAFE_前缀才能使用,以后可能会被彻底废弃,不建议使用。

关键词:前端培训

点赞
收藏
评论区
推荐文章
爱丽丝13 爱丽丝13
4年前
React 组件通信之发布订阅模式
React通信react的数据流是单向的,react通信有以下几种方式:父向子通信:传入props子向父通信:父组件向子组件传一个函数,然后通过这个函数的回调,拿到子组件传过来的值父向孙通信:利用context传值。React.createContext()兄弟间通信:​1、找一个相同的父组件,既可以用pr
Stella981 Stella981
3年前
React Native 中组件的生命周期
概述就像Android开发中的View一样,ReactNative(RN)中的组件也有生命周期(Lifecycle)。所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解生命周期,是合理开发的关键。RN组件的生命周期整理如下图:!33componentlifecycle(https://static.osch
Stella981 Stella981
3年前
CocosCreator编辑器脚本生命周期函数
CocosCreator为组件脚本提供了生命周期的回调函数。用户只要定义特定的回调函数,Creator就会在特定的时期自动执行相关脚本,用户不需要手工调用它们。目前提供给用户的生命周期回调函数主要有:onLoadstartupdatelateUpdateonDestroyonEnable
Stella981 Stella981
3年前
React TypeScript 从零实现 Popup 组件发布到 npm
本文转载自掘金《从0到1发布一个Popup组件到npm》,作者「海秋」。点击下方阅读原文去点个赞吧!上篇文章\1\中介绍了如何从0到1搭建一个React组件库架子,但为了一两个组件去搭建组件库未免显得大材小用。这次以移动端常见的一个组件Popup为例,以最方便快捷的形式发布一个流程完整的npm包。
Wesley13 Wesley13
3年前
DOM元素的自动隐藏
在一些有悬浮元素的场景中,比如点击一个按钮弹出菜单后,点击菜单以外的地方,菜单应该被隐藏起来。隐藏的方式最好是自动隐藏,或至少是组件内的自动隐藏。蒙层比如,一个模态框组件(闭包实现)点击蒙层时,响应蒙层的点击事件,可以在事件处理函数中隐藏整个组件。在Vue和React等框架的组件中,这一点非常容易实现。<divclass"com