React 常用的十个生命周期

2023-11-08

目录

前言

实例期

存在期

销毁期

总结


前言

学习一门语言,他的生周期我们是必须要理解,在这里就给大家讲解一下我们平常最常用到的一些生命周期,希望能给各位带来帮助。


我们首先要知道,React的生命周期主要分为三部分:实例期(挂载期)、存在期(更新期)、销毁期(卸载)


实例期

getdefaultprops  获取默认的props

getinitailstate      获取初始的state

componentWillMount  组件即将挂载

componentWillMount(){
    console.log('组件即将挂载')
}

render  渲染

render(){
    console.log('开始渲染');
    return (
      <div> App </div>
    )
}

componentDidMount   组件挂载完成

componentDidMount(){
    console.log('组件挂载完成')
}

存在期

componentWillReceiveProps()

// 只在子组件中有效 当父组件传递给子组件(当前子组件)的值发生变化时执行

componentWillReceiveProps(nextProps){
   console.log(nextProps)
}

//this.props 这个时候这个props依然是旧值
//nextProps  在这里的是新的props值

shouldComponentUpdate()

// 在子组件和父组件中都有效
// 当组件中props 或 state 任意一个值发生变化都会执行,返回的结果可以决定组件是否更新
shouldComponentUpdate(nextProps,nextState){
    if(nextProps.num % 3 === 0){
        return true  // 可更新
    }
     return false    // 不可更新
}

componentWillUpdate()  组件即将挂载

componentWillUpdate(nextProps,nextState){
  console.log('组件即将挂载')
}
// nextProps,nextState 改变之后的值(新值)

componentDidUpdata()  组件挂载完成

componentDidUpdate(prveProps,prveState){
    console.log('组件挂载完成')
}
// prveProps,prveState 改变之前的值(旧值)

销毁期

componentWillUnmount() 组件即将卸载 (组件卸载之前)

// 只在子组件中有效
componentWillUnmount(){
    console.log('组件即将卸载')

    // 组件卸载时清空该子组件里的点击事件
    this.box.onclick = null

    // 组件卸载时清空该组件里的定时器
    clearInterval(this.timer)
}

总结

 当然React 的生命周期有很多,但是我们常见的和常用的不过于就以上几个,在这里主要讲解了我们常用到的十个生命周期,当然想学习更多可查看官网 React生命周期——官网

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React 常用的十个生命周期 的相关文章

随机推荐

  • UDP与TCP报头介绍,三次握手与四次挥手详谈

    先介绍我们UDP TCP协议缓冲区 在UDP和TCP在数据传输和介绍时有有缓冲区概念的 UDP缓冲区 UDP没有真正意义上的 发送缓冲区 调用sendto会直接交给内核 由内核将数据传给网络层协议进行后 续的传输动作 UDP具有接收缓冲区
  • Python—retrying模块的使用

    使用超时参数能够加快我们整体的运行速度 但是在普通的生活中当我们使用浏览器访问网页时 如果发生速度很慢的情况 我们会做的选择是刷新页面 那么在代码中 我们是否也可以刷新请求呢 对应的 retrying模块就可以帮助我们解决 1 retryi
  • Quality Center设置开发人员修改bug状态

    使用QC时遇到了一个问题 将开发人员分配到QC默认的Developer的组中后 开发人员不能修改bug的状态 提示无权限操作 经查看原来是QC默认的Developer组对bug的权限没有 新建 gt 打开 这一操作 只有Project Ma
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据

    系列文章 python网络爬虫专栏 目录 序言 本节学习目标 特别申明 4 7 使用BeautfulSoup解析h
  • Idea项目爆红

    解决办法 方案一 重新加载Maven依赖 方案二 清除缓存 方案三 在当前项目下执行以下命令 重新生成 iml文件 mvn idea module
  • 利用java制作桌面应用程序_Java桌面应用

    对于作Java桌面应用来说 比较烦人的就是安装部署问题 客户端是否安装有jre jre版本问题 jre去哪下载 如 何用jre启动你的Java应 用 不要说刚接触电脑的人 就算是比较熟悉电脑 如果没有接触过Java 面对一个Java应用 如
  • Mysql复习总结

    目录标题 数据库特性 原子性 一致性 隔离性 持久性 Mysql事务所存在的问题 数据库隔离级别 Mysql中的log bin log VS redo log MVCC ACID如何被保证的 存储引擎 Innodb 和 MyISAM Inn
  • 百度云盘分享:MySQL零基础入门视频教程!

    百度云盘分享 MySQL零基础入门视频教程 首先给大家介绍一下数据库工程师 数据库工程师 Database Engineer 是从事管理和维护数据库管理系统 DBMS 的相关工作人员的统称 他属于运维工程师的一个分支 主要负责业务数据库从设
  • spark内存调优

    executor内存 1 RDD存储 persist cache操作 RDD持久化在executor中 注 UnifiedMemoryManager模式可设置spark storage memoryFraction调节 默认0 6 2 sh
  • 机器学习——决策树/随机森林

    0 前言 决策树可以做分类也可以做回归 决策树容易过拟合 决策树算法的基本原理是依据信息学熵的概念设计的 Logistic回归和贝叶斯是基于概率论 熵最早起源于物理学 在信息学当中表示不确定性的度量 熵值越大表示不确定性越大 ID3算法就是
  • nginx启动报错

    nginx启动报错 nginx报错如下 nginx emerg bind to 0 0 0 0 80 failed 10013 An attempt was made to access a socket in a way forbidde
  • python爬虫xpath教程

    环境准备 pycharm 撩妹神器 人手一个 lxml python的三方库 如果电脑里没有安装lxml的伙伴 可以安装一下 在控制台输入pip intall https pypi douban com simple lxml 利用国外的源
  • Vim编辑器

    1 Vim两种状态 命令状态 按i或者a可以进入编辑状态 编辑状态 左下角有insert 在命令状态下 有一些常用命令 新增 a 从光标后开始添加文本 A 从光标所在行的末尾开始添加文本 插入 i 从光标前面开始插入文本 I 从光标所在行的
  • 谈谈Linux下动态库查找路径的问题

    p p div class Blog wz1 span style font size 16px nbsp nbsp nbsp 学习到了一个阶段之后 就需要不断的总结 沉淀 清零 然后才能继续 上路 回想起自己当年刚接触Linux时 不管是
  • 笔记︱几款多模态向量检索引擎:Faiss 、milvus、Proxima、vearch、Jina等

    转自 https zhuanlan zhihu com p 364923722 引用文章 7 的开篇 来表示什么是 向量化搜索 人工智能算法可以对物理世界的人 物 场景所产生各种非结构化数据 如语音 图片 视频 语言文字 行为等 进行抽象
  • 关于keil卡在systeminit中,然后出现void HardFault_Handler(void)的几个问题详解

    版权声明 本文为博主原创文章 未经博主允许不得转载 https blog csdn net u013184273 article details 83860802 相信很多程序员在用keil的时候都会遇到在仿真调试时 一直停在SystemI
  • linux系统下更改pip默认下载源

    linux系统下更改pip默认下载源 很多教程让你创建什么什么文件的 不需要啊 不需要 我是用conda创建的虚拟环境 但是我喜欢用pip下载 在虚拟环境里面改这个配置就一句话 pip config set global index url
  • 51单片机测量方波信号周期

    利用T0作为定时器 T1作为计数器 主要思路 1 T1计数 工作模式 方式2 T0计时 工作模式 方式1 2 T1八位计数 赋初值0xFF 打开中断 开始计数 P3 5口输入被测量方波信号 3 进入T1中断 若TR0 0 则开始计时TR0
  • Solidity 合约安全,常见漏洞 (下篇)

    Solidity 合约安全 常见漏洞 下篇 Solidity 合约安全 常见漏洞 上篇 不安全的随机数 目前不可能用区块链上的单一交易安全地产生随机数 区块链需要是完全确定的 否则分布式节点将无法达成关于状态的共识 因为它们是完全确定的 所
  • React 常用的十个生命周期

    目录 前言 实例期 存在期 销毁期 总结 前言 学习一门语言 他的生周期我们是必须要理解 在这里就给大家讲解一下我们平常最常用到的一些生命周期 希望能给各位带来帮助 我们首先要知道 React的生命周期主要分为三部分 实例期 挂载期 存在期