一、生命周期

声明周期: 组件从创建到销毁的整个过程,一共有三个阶段: 创建阶段、运行阶段、销毁阶段。当组件被显示在页面中时,会被创建;组件从页面中消失了,会被销毁。

要在动态组件上理解组件的声明周期

二、组件的挂载阶段(初始渲染阶段)

  1. constructor: 在执行组件初始化时执行,可以给组件初始化state,或者给点击事件bind绑定this; 智慧触发一次

  2. render: 根据组件模板编译成虚拟DOM,此时页面还没有渲染

    • 不要在render 内调用this.setState() ,会形成死循环
    • render 由于会触发多次,制作数据渲染操作,比如 解构props、state 。不要在这里面发送请求等和渲染无关的操作
  3. componentDidMount : 组件已挂在完毕,此时已经可以看到页面了,虚拟DOM已经被转化为真实DOM了,可以在改函数操作DOM. 只执行一次

    • 组件初始化请求,放在componentDidMount 构造函数中即可,虽然constructor 也可以发送请求,且执行实际比 componentDidMount 更早,但是react 对于初始化请求的发送,显然是等到组件挂载完毕之后才正式发送请求的异步任务的。因此初始化请求不会放在constructor

三、组件更新阶段

  1. render: 三种情况会触发render函数的调用

    • 父组件传递了新的prop
    • 子组件调用了setState () ,修改了私有数据
    • forceUpdate() 强制渲染
  2. componentDidUpdate: 新DOM 更新完毕 ,此时可以获取最新的DOM结构。

    以上两个钩子都是频繁执行的,只要props或state更新,他俩就会执行

四、组件销毁阶段

  1. componentWillUnmount: 做一些清理组件内容的操作,比如: 定时器、添加的订阅、监听的事件

react 生命周期--常用的构造函数相关推荐

  1. react生命周期详细介绍

    目录 挂载:在组件实例被创建并插入到dom中时,生命周期调用顺序如下 constructor componentWillMount getDerivedStateFromProps render co ...

  2. 浅谈 React 生命周期

    浅谈 React 生命周期 浅谈 React 生命周期 旧版的生命周期 新版的生命周期 详解各个生命周期函数 constructor getDerivedStateFromProps render c ...

  3. React 生命周期 钩子函数

    React15 挂载过程 // 完成了React数据的初始化. props.state constructor() // 组件已经完成初始化数据,但是还未渲染DOM时执行的逻辑 componentWi ...

  4. react生命周期(自己的方式理解)

    react生命周期(自己的方式理解) react的生命周期函数有:挂载,渲染/更新,卸载 首先要知道react生命周期最初始的要有哪些?最后生命中出现的又有哪些?我本人喜欢把react比作是一个人的一 ...

  5. 你不可不知道的React生命周期

    点小蓝字加关注! 作者:kim 来源:原创 写在前面 咱今天聊的话题是React生命周期,灵感来自于最近在网上发现一篇关于react生命周期的文章,里面记录的知识点竟然与小编所get到的有出入.作为一 ...

  6. ES6中的React生命周期详解

    太长时间没写react了,有点生.重新捡起来练练手. import React,{ Component } from 'react';class Demo extends Component {con ...

  7. vue生命周期和react生命周期对比。

    生命周期 指的是组件从初始化开始到结束的过程 或者是生命周期是描述组件从开始到结束的过程,每个组件都具有生命周期,都对组件通过生命周期给予的钩子函数进行管理. 钩子函数 指的是系统某些状态和参数发生改 ...

  8. React、react生命周期、react生命周期运行过程、shouldComponentUpdate的用法

    React.react生命周期.react生命周期运行过程 1.创建阶段 constructor(){super()console.log('执行构造函数')this.state={num:1}}UN ...

  9. React生命周期讲解

    React生命周期图解 先上图 其实总结就是 进入当前页面,,然后渲染页面,加载数据,渲染demo,数据更新,组件卸载 constructor /* * constructor 其实是Es6 里面带的 ...

最新文章

  1. eclipse插件之easyshell
  2. mysql批量insert数据锁表_批量插入数据产生锁阻塞的问题
  3. js跨域访问,No 'Access-Control-Allow-Origin' header is present on the requested resource
  4. hmr webpack 不编译_webpack HMR未加载更改
  5. 【搜索引擎基础知识3】搜索引擎相关开源项目及网站
  6. SAP Marketing Cloud功能简述(五) : 销售计划管理
  7. 魔众商城系统源码 v4.0.0 beta
  8. 光伏巨头“脱轨” 英利确认债务重组
  9. Icon资源详解[1]
  10. tornado + supervisor + nginx + linux 亲身体验
  11. 网页设计软件html图标,网页设计Photoshop(PS)CSS切图必用工具
  12. 重金求购一份回合制手游源码
  13. JS实现快递单打印功能
  14. 丁磊一份隔着万水千山的爱情
  15. 成都有哪些牛批的互联网公司?
  16. HDU 1290 献给杭电五十周年校庆的礼物(空间分割)
  17. MySQL数据库基础知识12,MySQL单列索引和联合索引
  18. CGAN(conditional GANs)
  19. C#使用List.Clear()方法可以让GC回收内存吗?
  20. UVM的configuration机制

热门文章

  1. c语言车辆违章管理系统,C语言课程设计报告车辆违章查询系统.pdf
  2. 360云盘关闭了怎么办 选什么网盘最靠谱
  3. c语言数据类型、内存空间详解
  4. 网络安全是一个好专业吗
  5. 最大公约数和最小倍数
  6. .NET framework 安装失败 0x800c0006 解决方案
  7. 全新144g网页在线自动制作2021修复版源码
  8. 用LUSK方式对硬盘进行加密和解密
  9. FastStone Capture v9.7 功能强悍的屏幕截图工具
  10. 产品经理的核心价值和工作边界