react生命周期笔记

React学习笔记十-生命周期(旧) 此文章是本人在学习React的时候,写下的学习笔记,在此纪录和分享。此为第十篇,主要介绍React非常重要的组件的生命周期(旧)。 阅读详情

react lifeCycle

本文将从 函数式组件“生命周期”与类式组件生命周期对比介绍 执行流程参考react官网生命周期谱图:
在这里插入图片描述图片来源:https://react.docschina.org/

类组件

挂载阶段

constructor:

super(props) 传递props,才能在接下来的上下文中,获取到props
1.初始化 state ,比如可以用来截取路由中的参数,赋值给 state
2.对类组件的事件做一些处理,比如绑定 this, 节流,防抖等
3.对类组件进行一些必要生命周期的劫持,渲染劫持

getDerivedStateFromProps(nextProps,prevState):

nextProps:父元素新传递的props,prevState:组件在此次更新前的state
接收父组件的props数据, 可以对props进行格式化,过滤等,返回值将作为新的state合并到state中。

render:

将jsx的各个元素被React.createElement创建成React element对象的形式,及创建React.element元素的过程

componentDidMount:

  1. 可以做关于DOM操作,比如基于dom的事件监听器
  2. 对于初始化向服务器请求数据,渲染视图。

更新阶段

(1.父元素传入props改变,调用setState,调用forceupdate):

componentWillReceiveProps:

监听父组件的是否执行render
根据父元素props改变,来决定是否更新state

getDerivedStateFromProps(nextProps,prevState):

nextProps:父元素新传递的props,prevState:组件在此次更新前的state
接收父组件的props数据, 可以对props进行格式化,过滤等,返回值将作为新的state合并到state中。

shouldComponentUpdate(newProps,newState,nextContext):

一般用于性能优化,shouldComponentUpdate的返回值决定是否重新渲染类组件

render:

将jsx的各个元素被React.createElement创建成React element对象的形式,及创建React.element元素的过程。

getSnapshotBeforeUpdate(prevProps,preState):

配合componentDidUpdate一起使用,计算形成一个snapShot传递给componentDidUpdate。保存一次更新前的信息。

componentDidUpdate(prevProps, prevState, snapshot):

componentDidUpdate 生命周期执行,此时 DOM 已经更新,可以直接获取 DOM 最新状态
接受 getSnapshotBeforeUpdate 保存的快照信息。

卸载阶段:

componentWillUnmount:

组件销毁阶段,比如清除一些可能造成内存泄漏的定时器,或者事件监听器
clearTimeout(this.timer);
this.node.removeEventListener(‘click’,this.handerClick) // 卸载事件监听器


函数式组件

1.函数式组件中的使用生命周期函数方法的替代方案:

useEffect

useEffect (componentDidMount,componentDidUpdate 和 componentWillUnmount 这三个函数的组合)和useLayoutEffect执行代替类组件中生命周期的钩子。

useEffect (()=>{
},dep)

第一个参数是callback,定义组件每次更新时产生的副作用,第二个参数是依赖项,是一个数组,可以有多个依赖项,当依赖项改变,执行callback回调函数。 对于useEffect 是在视图绘制完毕,才执行,因此effect的回调函数不会阻塞浏览器绘制视图。

useLayoutEffect

useLayoutEffect 是在DOM绘制之前,更新产生的副作用,是同步执行的,因此会阻塞浏览器绘制。 useEffect 和 useLayoutEffect:修改 DOM,改变布局就用 useLayoutEffect,其他情况就用 useEffect 。

  1. useEffect(()=>{
    //请求 数据,事件监听, 操作dom
    return function componentWillUnmount(){
    // 解除事件监听器,清除定时器
    }
    },[])

当传入的依赖项是空数组时,useEffect第一参数的回调函数相当于componentDidMount, 而回调函数的返回函数,可以作为componentWillUnmount使用。

参考文章:https://juejin.cn/book/6945998773818490884 《React进阶实践指南》

《第二十二篇》Cross-Attention:注意力机制详解-代码实现和公式详解《二》 本文详细介绍了Cross-Attention的原理、公式和实现。Cross-Attention用于Transformer解码器和Encoder-Decoder结构,通过查询向量(Q)与键、值向量(K、V)的交互实现序列对齐。核心公式为softmax(QK^T/√d_k)V,其中Q来自Decoder,K、V来自Encoder。文章还给出了多头注意力机制公式和PyTorch实现代码,包括投影计算、注意力分数计算和输出处理。代码示例展示了如何构建一个完整的Cross-Attention模块,并演示了其在解码器查询 阅读详情

相关推荐

DCA1000EVM数据采集实战:从mmWave Studio配置到MATLAB后处理的全链路解析

本文详细解析了DCA1000EVM数据采集的全流程,从mmWave Studio配置到MATLAB后处理,涵盖数据存储结构解析、后处理引擎剖析及Python数据处理方案。通过实战案例,帮助开发者高效处理毫米波雷达原始数据,实现从数据到应用价值的转化,提升开发效率。

weixin_33743661的博客 707

React的生命周期

这是个只返回需要渲染内容的纯函数,不要包含其它的业务逻辑,可以返回原⽣的 DOM、React 组件、Fragment、Portals、字符串和数字、Boolean 值 和 null 值等内容。:当组件被卸载或销毁时就会被调⽤,我们可以在这个函数⾥去做一些释放资源的操作,如:清除定时器、取消⽹络请求、清理⽆效的 DOM 元素等。:在组件装载后被调⽤,此时可以获取 DOM 节点并操作,对服务器的请求、订阅等操作都可以写在这个地方,但记得要在。:组件的构造函数,它会最先被执⾏,我们通常在构造函数⾥初始化。

outstanding木槿 919

VS2022如何兼容老项目?.NET Framework 4.0/4.5安装避坑指南

本文提供了在Visual Studio 2022中兼容和维护.NET Framework 4.0/4.5等老旧项目的完整解决方案。针对VS2022无法直接识别旧框架的核心问题,文章详细剖析了原因,并重点推荐通过官方NuGet包安全获取引用程序集的方法,给出了从下载、解压到部署至标准目录的详细步骤。同时,文章还深入探讨了项目文件格式过旧、NuGet包还原失败等进阶问题的排查与解决策略,旨在帮助开发者高效、稳定地在现代开发环境中维护历史代码库。

weixin_27734811的博客 514

react之旅(八)React生命周期

一、react 16前的生命周期 1.1 constructor constructor(props, context) 如果想(在组件其他地方是可以直接接收的)使用props或context,则需要以参数形式传入。 只要组件存在constructor,就必要要写super,否则this指向会错误 1.2 componentWillMount componentWillMount () 在组件挂载之前调用,且全局只调用一次。如果在这个钩子里可以setState,render后可以看到更新后的st

letianxf的博客 1242

泛微OA表单设计实战:如何快速实现自定义多选浏览框(附完整配置步骤)

本文详细介绍了在泛微OA中快速实现自定义多选浏览框的完整配置步骤。针对招聘提报、活动审批等需要从海量数据中规范选择多个条目的业务场景,文章从理解需求、构建数据源、设计查询页面到创建浏览框控件,提供了清晰的实战指南,帮助开发者高效解决复杂数据选择难题,提升表单操作体验。

yog99的博客 1048

【图像去噪】论文精读:FM2S: Self-Supervised Fluorescence Microscopy Denoising With Single Noisy Image

论文题目:FM2S: Self-Supervised Fluorescence Microscopy Denoising With Single Noisy Image —— FM2S:单噪声图像自监督荧光显微镜去噪arXiv 2024!显微图像去噪!通过可视化详细的细胞结构和生物过程,荧光显微镜具有显着先进的生物学研究。然而,由于难以精确建模固有噪声和获取干净图像进行训练,这种图像去噪任务往往面临挑战,这限制了大多数现有方法。在本文中,我们提出了一种有效的。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 408

React生命周期方法之 componentDidMount

1. componentDidMount() 这个生命周期方法应该是用的最多的,一般用在进入页面后,数据初始化,这种情况下,跟model中的subscription方法作用是一样的。但是当你数据初始化方法都写在subscription方法时,当你改了页面访问路径,model里面的path没改过来,初始化方法就调不到了。但是要是把数据初始化接口都放在componentDidMount函数里,只要进...

star_zone的博客 3万+

30分钟上手YOLO26 nano:INT8量化部署到智能相机,推理速度提升43%

微调代码(仅需5行,数据集遵循COCO格式)data="custom_data.yaml", # 数据集配置文件epochs=20, # 少量轮数即可收敛batch=8,imgsz=640model.save("yolov26n_custom.pt") # 保存微调后的模型本文在30分钟内完成了YOLO26 nano的INT8量化与智能相机部署,核心步骤为环境准备→模型获取→ONNX导出→INT8量化→部署推理。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 987

React生命周期

react生命周期主要分为三个阶段 1.初始化组件阶段 2.更新阶段 3.卸载组件阶段 初始化组件阶段的生命周期钩子 constructor static getDerivedStateFromProps() 静态方法,前面需要加static,

weixin_45974259的博客 1107

开源模型应用落地-qwen模型小试-入门篇(二)

在windows环境下,使用transformer设置模型参数/System Prompt/历史对话

以微薄之力,予他人些许温暖. 3234

锐捷 MPLS VPN 配置

ISP内部配置 , PE设备和CE设备之间的接口不开启 ( 只在物理接口上配置 , loopback 口不配置 )最后一步关闭 ipv4 单播 , 如果你发现路由奇奇怪怪的 , 可以尝试一下。both --> 同时配置 import export 值。绑定后接口会重置 , 且接口的路由会转到VRF路由表中。这里基本上绑定了 vrf 实例的接口都需要宣告进去。vpnv 4 通道是用来传递 mpls 路由的。先建立邻居管理,建立VPNV4通道。这里要做双向引入 , 才会有路由。export 导出值。

dekangzou的博客 1711

「React 基础」组件生命周期函数componentDidMount()介绍

大家好,今天我们将通过一个实例——番茄计时器,学习下如何使用函数生命周期的一个重要函数componentDidMount():在组件加载完成, render之后进行调用,只会执行一次。番...

前端达人 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

reactjs生命周期ajax网络,React生命周期原理与用法踩坑笔记

本文实例讲述了react生命周期原理与用法。分享给大家供大家参考,具体如下:react生命周期生命周期概览生命周期的状态组件的生命周期可分成三个状态:mounting:已插入真实 domupdating:正在被重新渲unmounting:已移出真实 domcomponentwillmount 在渲染前调用,在客户端也在服务端。生命周期介绍componentdidmount :在第一次渲染后调用,只...

weixin_42501892的博客 321

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

React生命周期笔记记录

React生命周期 这里是参考网上资料加以整理的关于React生命周期的笔记(文中案例是自己真实手敲验证的哦~),以防今后自己可以更方便快捷的查询信息内容,参考的文章链接地址如下,感谢大家给予我这种技术小白提供知识的参考: https://www.jianshu.com/p/514fe21b9914 一、组件初始化阶段 constructor() import React, { Compone...

weixin_42260975的博客 299

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

浅析React JSX 与生命周期(React笔记之一)

本文是结合实践中和学习技术文章总结出来的笔记(个人使用),如有雷同纯属正常((✿◠‿◠))React是目前国内最热门的两大前端MVVM框架之一,它拥有高效率的函数式组件和class类组件,通过输入数据吐出UI的模式受到很多前端工作者的喜爱。

qq_32453495的博客 1419

react的生命周期笔记

import React from 'react' // 这个组件讲诉的是组件的生命周期 // 1.组件生命周期的意义:组件的生命周期有助于理解组件的运行方式、完成更复杂 // 的组件功能、分析组件的错误原因等 // 2.组件的生命周期:组件的从被创建到挂载到页面中运行,再到组件不用时卸载的过程 // 3.生命周期的每个阶段总是伴随着一些方法调用,这些方法就是生命周期的钩子函数 // 4.只有类组件才有生命周期 // --------------------------二、生命周期的三个阶段-------

weixin_41166682的博客 147

ReactJS读书笔记二:组件生命周期

React 组件就是一个状态机,它接受两个输入参数: this.props 和 this.state,返回一个虚拟DOM。 React组件的生命周期分几个阶段,每个阶段会有若干个回调函数可以响应不同的时刻。 组件生命周期 一 创建类 React组件是有 类 和 实例的区别的,通过 React.createClass 创建的是类,比如: var Li

言川的博客 1万+

React学习笔记(四)——React 组件生命周期

在react类组件中,多次的setState并不会立刻执行,而是合并成一个来执行。

weixin_56370772的博客 5257

react学习笔记-react生命周期

react-生命周期生命周期四大阶段组件初始化(initialization)组件挂载(Mounting)组件更新(update)组件卸载(Unmount)React v16.4 的生命周期如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘...

Dronwing fish 507

【React详细笔记】react新旧生命周期对比

文章目录生命周期(旧)一. 初始化阶段(生命周期执行顺序)二. 更新阶段(生命周期执行顺序)三. 卸载阶段(生命周期执行顺序)生命周期(新)一、初始化阶段二、更新阶段三、卸载阶段 生命周期(旧) 一. 初始化阶段(生命周期执行顺序) 初次渲染:由ReactDOM.render()触发 constructor componentWillMount render componentDidMount 一般在该生命周期里做一些初始化的事:开启定时器、发送请求、订阅消息 二. 更新阶段(生命周期执行顺序)

马云 795

react笔记-02生命周期篇

初始化阶段:由触发(初次渲染)render()常用,一般在这个钩子中做一些初始化的工作,例如:开启定时器,发送请求,订阅消息,类似于vue中的mounted更新阶段:由组件内部或父组件重新render触发shouldComponentUpdate() (强制更新不触发)render()卸载组件:由触发常用,一般在这个钩子中做一些收尾的事。

m0_65519288的博客 1176

react使用笔记及生命周期

react-intl:做国际化的 react只是dom的一个抽象层,并不是web应用的完整解决方案。它没涉及到代码结构和组件之间的通信 react components的生命周期,在浏览器中的三个状态:   Mounted(React.renderComponent()):React components被render解析生成对应的DOM节点并被插入浏览器的D...

acay4499的博客 195

ReactJS学习笔记——生命周期、数据流与事件

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33739523的博客 249

React组件生命周期学习笔记

生命周期 Mount 已经插入真实DOM Updating 正在被重新渲染 Unmounting 已移出真实DOM 生命周期方法 初始化时调用 componentWillMount 在初始化render时调用 componentDidMount 在初始化render后调用 更新时调用 componentWillReceiveProps 在组件接收到一个新的props时调用 shouldComponentUpdate 返回一布尔值用于决定是否执行render componentWillU

m0_57023114的博客 350

学习react笔记(生命周期)

react 生命周期

qq_47997447的博客 278
上一篇: 数据库存储数组类型
下一篇: 获取url参数
chernbo
博客等级 码龄9年 8粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值