class生命周期

news2024/11/19 13:29:37

组件实例 化的过程称作组件的挂载(mount)。

  1. 组件挂载的过程: 构造函数(constructor)最先执行,componentWillMount() 会在 render() 方法之前 执行,而 componentDidMount() 在 render() 方法之后执行。
  2. 组件更新,调用顺序如下:
    • componentWillReceiveProps()
    • shouldComponentUpdate()
    • componentWillUpdate()
    • render()
    • componentDidUpdate()
  3. 组件卸载也有生命周期。它只有一个生命周期方法:componentWillUnmount()。

import { Component, createElement} from 'rax';

interface Tstate{
test:any
}
interface Home{
  state: Tstate,
  
}
class Home extends Component{

  constructor(props) {
    super(props);
    console.log('constructor');
    this.state = {
      test:{a:1}
    }
  };
  componentWillMount() {
    console.log('componentWillMount')
  }
  componentDidMount() {
    console.log('componentDidMount', this.state.test)
    setTimeout(() => {
      this.setState({
        test: {
        b:2
      }})
    },0)
  }
  componentWillReceiveProps = (props) => {
    console.log('componentWillReceiveProps',this.state.test,props)
  }
  componentWillUpdate() {
    console.log('componentWillUpdate',this.state.test)
 }
  componentDidUpdate(){
    console.log('componentDidUpdate',this.state.test)
  }
  componentWillUnmount() {
    console.log('componentDidUpdate',this.state.test)
  }
  
  render() {
    console.log('render')
  return(<div>1111</div>)
}
}
export default Home

打印顺序如下:
在这里插入图片描述
总结:

  1. render之前适合初始化变量
  2. componentDidMount适合更新变量,获取到的数据将被保存在内部组件的状态中然后在 render() 生命 周期方法中展示出来。
  3. 如果组件没有接收到新的props,将不会执行componentWillReceiveProps
  4. 每次你修改组件的内部状态,组件的 render 方法会再次运行, 相继触发componentWillUpdate,render, componentDidUpdate三个函数,并且只有在componentDidUpdate的时候才能真正获取到更新之后的变量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/543116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么 PostQuitMessage 会被设计出来?

众所周知&#xff0c;我们可以使用 SendMessage 或者 PostMessage 来发送消息&#xff0c;那为什么在 Win32 API 中&#xff0c;会单独设计一个 PostQuitMessage 呢? 有一位读者 A. Skrobov 问我&#xff0c;”PostQuitMessage 和 PostThreadMessage(GetCurrentThreadId, WM_…

【PyTorch框架】——框架安装使用流程搭建PyTorch神经网络气温预测

目录 一、引言 二、使用流程——最简单例子试手 三、分类任务——气温预测 总结&#xff1a; 一、引言 Torch可以当作是能在GPU中计算的矩阵&#xff0c;就是ndarray的GPU版&#xff01;TensorFlow和PyTorch可以说是当今最流行的框架&#xff01;PyTorch用起来简单&#xff…

【开发者指南】如何在MyEclipse中使用HTML或JSP设计器?(下)

MyEclipse v2022.1.0正式版下载 三、设计编辑基础 “设计”窗口由所见即所得的网页设计画布和UI控制面板组成。在此窗口中&#xff0c;您可以插入、编辑、删除和移动 HTML 和 JSP UI 控件和文本。拖放操作可以轻松实现重新定位设计画布上的UI控件。扩展的复制/粘贴操作能够将…

Unity3D :PlayableGraph

推荐&#xff1a;将NSDT场景编辑器加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 PlayableGraph PlayableGraph 定义一组绑定到 GameObject 或组件的可播放输出项。PlayableGraph 还定义一组可播放项及其依赖关系。图 1 提供了一个示例。 PlayableGraph 负责管理可…

卷积神经网络实例

文章目录 1. 数据输入2. 创建卷积模型并训练3. 超参数选择 卷积神经网络(CNN)主要由卷积层(Convolutional Layer)、池化层(Pooling Layer)、激活层(Activation Layer)和全连接层(Fully-connected Layer)组成。 卷积层(Convolutional Layer)&#xff1a;卷积层是CNN的核心组成部…

职场新人如何使用ChatGPT提高工作效率

刚刚从象牙塔中毕业&#xff0c;走向社会战场。作为职场新人的同学们刚刚进入公司和部门&#xff0c;难免会被安排做些本职工作之外的事务工作&#xff0c;被上级安排做些零零碎碎的小东西&#xff0c;俗称打杂。这些工作说难不难&#xff0c;想要做漂亮也并不简单&#xff0c;…

Linux实时监控网卡入流量和出流量(iftop、dstat、nethogs、nload)

背景 相同配置和相同业务的4台cvm&#xff0c;今天准备下线&#xff0c;检查还有没有业务流量的时候&#xff0c;发现有两台流量不符合预期&#xff0c;就很奇怪&#xff0c;想知道流量是从哪里来的。记录下当时定位思路 先来了解下基本的概念 一、Mbps、kbps、bps、bit、b…

光纤仿真相关参数——光纤损耗、数值孔径、归一化参数

对于光纤&#xff0c;不难想象它频带宽、损耗低、重量轻、抗干扰能力强、工作性能可靠、成本低等优点。 光纤的损耗可以用以下公式表示&#xff1a; 在光的传播过程中&#xff0c;会按照光线的功率损耗系数\alpha衰减&#xff0c;单位为 我们可以用经过一端距离l后输出的光功率…

electron 使用electron-packager打linux-x64包与linux-arm64包,解决打包缓慢问题

使用electron-packager打linux-x64包与linux-arm64包,解决下载zip打包缓慢问题 在使用electron-packager打包的过程中&#xff0c;需要在第一次下载electron版本对应的zip文件&#xff0c;下载很缓慢&#xff0c;而且还可能出现每次都在下载zip的情况 解决思路是提前下载好zip文…

【Linux】kill、raise、abort函数

目录 1、kill、raise、abort函数2、代码示例 橙色 1、kill、raise、abort函数 /* #include <sys/types.h>#include <signal.h>int kill(pid_t pid, int sig);- 功能&#xff1a;给任何的进程或者进程组pid, 发送任何的信号 sig- 参数&#xff1a;- pid &#xf…

【LED子系统】六、核心层详解(三)

个人主页&#xff1a;董哥聊技术 我是董哥&#xff0c;高级嵌入式软件开发工程师&#xff0c;从事嵌入式Linux驱动开发和系统开发&#xff0c;曾就职于世界500强公司&#xff01; 创作理念&#xff1a;专注分享高质量嵌入式文章&#xff0c;让大家读有所得&#xff01; 文章目录…

腾讯云轻量应用服务器性能测评(全网超详细)

腾讯云轻量应用服务器性能如何&#xff1f;CPU型号主频、内存、公网带宽和系统盘存储多维对比&#xff0c;轻量应用服务器会不会比云服务器CVM性能差&#xff1f;相对于CVM云服务器轻量服务器更适合轻量级的应用&#xff0c;轻量服务适合中小企或个人开发者用于搭建We网站b应用…

测试用例02

复习 基于需求设计测试用例 分析需求&#xff0c;验证需求&#xff0c;细化需求&#xff0c;从需求中提取一个个的测试点&#xff0c;根据每一个测试点&#xff0c;采用具体的设计测试用例的方法取设计测试用例&#xff1a; 有多细致的需求&#xff0c;就有多细致的测试用例&am…

BATJ架构师首推!分布式事务原理与实战,出神入化

前言 广度与深度兼备、理论与实战兼顾的《分布式事务原理与实战》从以下5个维度全面深入的讲解了分布式事务&#xff1a; 基础知识维度&#xff1a;首先全面介绍了事务和分布式事务的概念和基础知识&#xff0c;然后详细讲解了MySQL事务和Spring事务的实现原理。 解决方案维度…

新一代产业变革席卷全球,深眸科技融合AI+机器视觉实现智造升级

随着新一代产业变革席卷全球&#xff0c;人工智能成为变革的核心方向&#xff0c;借助人工智能崛起的东风&#xff0c;机器视觉也逐渐成为工业制造业的必选项。在工业4.0和中国制造2025的推动下&#xff0c;中国制造企业纷纷投入到智能化转型的过程中&#xff0c;但就目前来看&…

YOLO 算法系列

我们分享了YOLO系列的文章&#xff0c;包括前段时间刚刚发布的YOLOv7检测算法&#xff0c;虽然YOLOv7对象检测算法是YOLO最新的模型&#xff0c;且可以支持对象分割&#xff0c;人体姿态检测等&#xff0c;但是最新的YOLO系列检测模型也同步进行了更新&#xff0c;那就是刚刚开…

正版软件,官方授权。RadiAnt DICOM Viewer - 软件版 / CD/DVD版

灵活、简单、快速 RadiAnt 是一个医学图像的 PACS DICOM 浏览器 设计是为了给您独特体验&#xff0c;它界面直观&#xff0c;性能无与伦比&#xff0c;您的体验感一定爆棚&#xff01; RadiAnt DICOM Viewer是一款专为医学影像浏览看图而设计的软件。它具有单个窗口界面&…

全屋智能,始终在等一双“究极手”

《塞尔达传说&#xff1a;王国之泪》是今年迄今为止最火爆的游戏&#xff0c;也是全球科技爱好者在这个5月里共同关注的热门话题。 游戏中&#xff0c;有一个广大玩家津津乐道的新功能&#xff0c;是主角林克具备了一种名为“究极手”的能力。它可以把游戏里的各种各样的物品组…

卷起来!Dr. LLaMA:通过生成数据增强改进特定领域 QA 中的小型语言模型,重点关注医学问答任务...

大家好&#xff0c;最近突然发现了一篇在专门应用于医学领域的LLaMA&#xff0c;名为Dr.LLaMA&#xff08;太卷了太卷了&#xff09;&#xff0c;就此来分享下该语言模型的构建方法和最终的性能情况。 论文&#xff1a;Dr. LLaMA: Improving Small Language Models in Domain-S…

晶能转债,正元转02上市价格预测

晶能转债 基本信息 转债名称&#xff1a;晶能转债&#xff0c;评级&#xff1a;AA&#xff0c;发行规模&#xff1a;100.0亿元。 正股名称&#xff1a;晶科能源&#xff0c;今日收盘价&#xff1a;12.19元&#xff0c;转股价格&#xff1a;13.79元。 当前转股价值 转债面值 / …