React和Vue生命周期、渲染顺序

news2024/11/26 4:43:05

主要就是命名不同

目录

React

组件挂载

挂载前constructor()

挂载时render()

挂载后componentDidMount():初始化节点

更新

更新时render():prop/state改变

更新后componentDidUpdate()

卸载

卸载前componentWillUnmount():清理

Vue

初始阶段:beforeCreate、created、beforeMount、mounted

更新阶段:beforeUpdate、updated

销毁阶段:beforeUnmout、unmounted


React

组件挂载

挂载前constructor()

如果不初始化 state 或不进行方法绑定,则不需要为 React 组件实现构造函数

挂载时render()

class 组件中唯一必须实现的方法。

挂载后componentDidMount():初始化节点

组件(插入 DOM 树中)立即调用。依赖于 DOM 节点的初始化应该放在这里。

更新

更新时render():prop/state改变

它只有在 prop 或state发生变化时才可能更新和重新渲染

更新后componentDidUpdate()

首次渲染不会执行此方法。

卸载

卸载前componentWillUnmount():清理

在组件卸载及销毁之前直接调用。在此方法中执行必要的清理操作,例如,清除 timer,取消网络请求或清除在 componentDidMount() 中创建的订阅等。

class Welcome extends React.Component {
    state = {
        msg: 'hello world'
    }
    constructor(props){
        super(props);
        console.log('constructor');
    }
    componentDidMount = () => {
        // react中发起ajax请求的初始操作,在这个钩子中完成
        console.log('componentDidMount');
    }
    componentDidUpdate = () => {
        // 等DOM更新后触发的钩子
        console.log('componentDidUpdate');
    }
    componentWillUnmount = () => {
        console.log('componentWillUnmount');
    }
    handleClick = () => {  
        /* this.setState({
          msg: 'hi react'
        }); */
        //this.forceUpdate();
        root.unmount();   // 触发卸载组件
    }
    render(){
        console.log('render');
        return (
            <div>
                <button onClick={this.handleClick}>点击</button>
                { this.state.msg }
            </div>
        );
    }
}

Vue

初始阶段:beforeCreate、created、beforeMount、mounted

一般在,created,mounted中都可以发送数据请求,但是,大部分时候,会在created发送请求。因为这样可以更短的时间去响应数据。

更新阶段:beforeUpdate、updated

销毁阶段:beforeUnmout、unmounted

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

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

相关文章

利用数据与分析,推动企业数字化发展的路线图

导读 如今&#xff0c;保持数据与分析&#xff08;D&A&#xff09;战略与业务发展的统一同步&#xff0c;是助力企业机构成功和推进数字化项目的关键。敏捷的数据与分析能力对于培养感知-响应能力至关重要&#xff0c;可帮助企业机构满足全新的需求&#xff0c;进入前所未…

git页面管理用户账号和密码(新建用户和初始化密码)

本文章适用&#xff1a;没有固定的用户认证&#xff08;AD域或者LDAP等&#xff09;&#xff0c;git私有仓库单独管理用户&#xff08;新建用户和初始化密码&#xff09;。 1.创建新用户 以管理员的身份登录&#xff0c;进入git的管理模式&#xff0c;点击“New user”&…

copilot使用初体验(一)

写函数 1、写一个注释&#xff0c;按下回车&#xff0c;会自动生成函数&#xff08;函数名函数体&#xff09;&#xff0c;然后按下 tab&#xff0c;接受建议。 // 找出一个数组中houseId等于3的那项 findHouseIdIs3(arr) {return arr.find(item > item.houseId 3) },快捷…

UDP-组播,广播

转自&#xff1a;https://www.cnblogs.com/wangzhilei-src/p/15314315.html UDP是面向非连接的协议&#xff0c;它不与对方建立连接&#xff0c;而是直接把数据报发给对方。UDP无需建立类如三次握手的连接&#xff0c;使得通信效率很高。因此UDP适用于一次传输数据量很少、对可…

python 100以内的质数

可以使用for循环 # 求100以内的质数 i 2 for j in range(1, 101): #如果100以内的数字除以2的余数等于0if (j % i 0): #如果是就跳过&#xff0c;继续下一个循环continueprint(j) 要找出从1到100之间的质数&#xff0c;你可以使用嵌套循环和判断条件来实现。 print("…

硬中断、软中断详解

文章目录 什么是中断&#xff1f; 什么是计算机的中断&#xff1f; 什么叫硬中断、什么叫软中断&#xff1f; 怎么查看硬中断、软中断 查看硬中断的运行情况 cat /proc/interrupts 查看软中断的运行情况 cat /proc/softirqs 怎么排查软中断过高的问题&#xff1f; 软中断注意事…

win11 win+e 打开我的电脑

在打开的【文件资源管理器】中&#xff0c;找到【选项】菜单&#xff0c;并点击该菜单 在打开的弹框中&#xff0c;将选项卡切换到【常规】&#xff0c;将【打开文件资源管理器时打开】后的下拉框&#xff0c;选择为【此电脑】&#xff0c;然后&#xff0c;点击保存即可。到此&…

8.1Java EE——Spring AOP

Spring的AOP模块是Spring框架体系中十分重要的内容&#xff0c;该模块一般适用于具有横切逻辑的场景&#xff0c;如访问控制、事务管理和性能监控等 一、AOP概述 AOP的全称是Aspect Oriented Programming&#xff0c;即面向切面编程。和OOP不同&#xff0c;AOP主张将程序中相同…

AndroidStudio中添加翻译插件:Translation

背景 开发中经常要阅读源码等&#xff0c;就会涉及翻译&#xff08;特别是英语不好的在下&#xff09;&#xff0c;之前一直是复制到百度或者谷歌进行翻译。终于&#xff0c;偶然找到了一款好用的as内直接用的翻译插件。 安装流程 1. 安装插件 打开as&#xff0c;依次点击&am…

【动手学深度学习】--11.经典卷积神经网络 LeNet

文章目录 经典卷积神经网络 LeNet1.LeNet2.代码实现3.模型训练 经典卷积神经网络 LeNet 学习视频&#xff1a;经典卷积神经网络 LeNet【动手学深度学习v2】 官方笔记&#xff1a;卷积神经网络&#xff08;LeNet&#xff09; 1.LeNet 总体来看&#xff0c;LeNet&#xff08;L…

SpringBoot如何启用/禁用执行器?

SpringBoot如何启用/禁用执行器&#xff1f; 一、什么是SpringBoot执行器二、如何启用SpringBoot执行器三、如何禁用SpringBoot执行器 一、什么是SpringBoot执行器 在Spring Boot中&#xff0c;执行器&#xff08;Actuator&#xff09;是一个用于监控和管理应用程序的功能模块…

关于WIN10创建系统映像时D盘为系统盘的解决方案

文章目录 问题&#xff1a;使用WIN10自带备份工具时&#xff0c;创建系统映像时&#xff0c;D盘被识别为系统盘的解决方案。方法一&#xff08;传统方法&#xff0c;删盘符&#xff09;方法二&#xff08;对症下药&#xff0c;找原因&#xff09;第一个选项是暂时将服务的Image…

Nature Neuroscience:慢波、纺锤波和涟波耦合如何协调人类睡眠期间的神经元加工和通信

摘要 学习和可塑性依赖于休息期间神经元回路的微调调节。一个尚未解决的难题是&#xff0c;在没有外部刺激或有意识努力的情况下&#xff0c;睡眠中的大脑如何协调神经元的放电率(FRs)以及神经回路内外的通信&#xff0c;以支持突触和系统巩固。利用颅内脑电图对人类海马体和周…

SuperGlue学习记录之最优传输

在进行最优传输相关理论的学习过程中&#xff0c;找到SuperGlue这篇论文&#xff0c;该篇论文通过最优传输来完成特征点的匹配过程。 SuperGlue结构 先来看一下其结构&#xff1a; 首先将两张图片送入特征提取网络&#xff0c;通过卷积网络提取出特征&#xff0c;主要有四个值…

Windows特殊名称文件夹删除

问题描述&#xff1a; 使用React开发的前端项目&#xff0c;指定build输出路径是创建出了俩个特殊的文件夹 .. build 咋一看build显得很正常&#xff0c;那你是没看见同时出现了俩个build&#xff1a; 尝试使用 dir /x rd /S /Q 等删除目录无果 尝试下载删除文件夹的工具也没…

【windows测试通过】关于Godot导入外部音频文件的问题

file.open(filepath, file.READ) var buffer file.get_buffer(file.get_len()) #put data into audiostreamsample var stream AudioStreamSample.new() stream.data buffer 代码给出&#xff0c;还没有测试过。(godot3.2测试未通过&#xff09; 在运行时轻松加载外部音频…

大数据传输安全风险与预防措施

随着互联网技术的快速发展和大数据时代的到来&#xff0c;大数据传输已成为越来越重要的环节。但由于网络传输过程中存在着各种安全风险&#xff0c;这些风险极有可能会导致机密数据泄露、网络攻击等问题&#xff0c;对企业和个人的信息安全造成潜在的威胁。因此&#xff0c;保…

【个人笔记】对linux中一切皆文件的理解与ls命令

目录 Linux中一切皆文件ls命令常用参数常用命令lscpu lspci Linux中一切皆文件 理解参考&#xff1a;为什么说&#xff1a;Linux中一切皆文件&#xff1f; ls命令 ls&#xff08;英文全拼&#xff1a; list directory contents&#xff09;命令用于显示指定工作目录下之内容…

数据可视化组件有什么用?

数据可视化组件在数据分析中扮演着至关重要&角色。 通过图表、图形和交互式界面&#xff0c;数据可视化组件帮助将复杂的数据转化为易于理解的视觉展示。这种形式的数据呈现有助于发现模式、趋势和异常&#xff0c;并能够快速有效地传达数据的含义和洞察。 下面简单举两个…

volatile 关键字 (详细解析)

目录 前置知识 共享变量不可见性 JMM volatile 关键字 使用volatile关键字 加锁 volatile 关键字 -- 更深入的问题 volatile不保证原子性 volatile禁止指令重排序 前置知识 共享变量不可见性 在多线程并发执行下&#xff0c;多个线程修改共享的成员变量&#xff0…