react学习——14react生命周期图(旧)

1、生命周期图
在这里插入图片描述
2、单个组件

 class Demo extends React.Component{//构造器constructor(props){console.log("count--constructor")super(props)this.state={count: 1}}//组件将要挂载componentWillMount(){console.log("count--componentWillMount")}//组件挂载完毕componentDidMount(){console.log("count--componentDidMount")}//组将将要被卸载componentWillUnmount(){console.log("count--componentWillUnmount")}//控制组件更新的阀门shouldComponentUpdate(nextProps, nextState, nextContext) {console.log("count--shouldComponentUpdate")return true}//组件将要被更新componentWillUpdate(nextProps, nextState, nextContext) {console.log("count--componentWillUpdate")}//组件更新完毕componentDidUpdate(prevProps, prevState, snapshot) {console.log("count--componentDidUpdate")}death=()=>{ReactDOM.unmountComponentAtNode(document.getElementById('root'))}add=()=>{this.setState({count:this.state.count+1})}//强制更新force=()=>{this.forceUpdate()}// 调用时机:初始化渲染和更新之后render(){console.log("count--render")const {count} = this.statereturn(<div><h1 >当前求和为:{count}</h1><button onClick={this.add}>点我加1</button><button onClick={this.death}>卸载组件</button><button onClick={this.force}>不更改任何数据中的状态,强制更新一下</button></div>)}}
ReactDOM.render(<Demo/>,document.getElementById('root'))

3、父子组件

class A extends React.Component{state={carName:"奔驰"}changeCarName=()=>{this.setState({carName:"奔驰c63"})}render(){return(<div><div>我是A组件</div><button onClick={this.changeCarName}>换车</button><B carName={this.state.carName}></B></div>)}}//创建子组件class B extends React.Component{//组件将要被接收到新的属性componentWillReceiveProps(nextProps, nextContext) {console.log("B----componentWillReceiveProps",nextProps,nextContext)}shouldComponentUpdate(nextProps, nextState, nextContext) {console.log("B----shouldComponentUpdate")return true}componentWillUpdate(nextProps, nextState, nextContext) {console.log("B----componentWillUpdate")}render(){console.log("B----render")return(<div>我是B组件,接收到的车是:{this.props.carName}</div>)}}ReactDOM.render(<A/>,document.getElementById('root'))

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

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

相关文章

【AI大模型】ChatTTS——颠覆传统,赋能未来的文本到语音技术

文章目录 一、项目介绍二、代码解释三、从技术角度进行分析四、技术细节与实现五、优缺点分析六、应用场景分析七、未来展望八、结论 一、项目介绍 随着人工智能技术的不断进步&#xff0c;语音合成&#xff08;TTS&#xff09;技术得到了飞速发展。ChatTTS项目作为一个开源的…

用VScode打开keil下的文件中文编码乱码的问题,以及利用VScode转换字符编码的方法

目录 问题描述 解决方法 利用VScode转换字符编码的方法 问题描述 keil中默认的编码是ANIS如下图所示。 而VScode中默认的编码为UTF-8 &#xff0c;打开后如下。 解决方法 建议另存后&#xff0c;再打开目标文件&#xff0c;防止误操作&#xff01; 在VScode的最下方可以找…

MCP2515汽车CAN总线支持SPI接口的控制器芯片替代型号DPC15

器件概述 DPC15是一款独立CAN控制器&#xff0c;可简化需要与CAN总线连接的应用。可以完全替代兼容MCP2515 图 1-1 简要显示了 DPC15 的结构框图。该器件主要由三个部分组成&#xff1a; 1. CAN 模块&#xff0c;包括 CAN 协议引擎、验收滤波寄存 器、验收屏蔽寄存器、发送和接…

中学政史地杂志中学政史地杂志社中学政史地编辑部2024年第4期目录

每月时政 时政要闻&#xff08;2024年3月&#xff09; 李伟; 3-4 热点聚焦 全面加强基础设施建设,积极扩大有效投资 刘华; 5-7《中学生政史地》投稿&#xff1a;cn7kantougao163.com 蒙古国努力应对冰雪灾害 张仁杰; 8-10 复习指导 高中政治经济全球化内容复习…

Linux的免交互

交互&#xff1a;我们发出指令控制程序的运行&#xff0c;程序在接收到指令之后按照指令的效果做出对应的反应。 免交互&#xff1a;间接的通过第三方的方式把指令传送给程序&#xff0c;不用直接的下达指令。 1、here document免交互 ere document免交互&#xff1a;是命令…

【大数据】大数据的核心特征与挑战:Volume、Velocity、Variety、Veracity

目录 Volume&#xff1a;海量数据的挑战与机遇 挑战 技术挑战 机遇 Velocity&#xff1a;数据处理的速度与实时性 挑战 技术挑战 机遇 Variety&#xff1a;数据类型的多样性与复杂性 挑战 技术挑战 机遇 Veracity&#xff1a;数据的真实性与质量控制 挑战 技术挑…

数字内容“遍地开花”,AI技术如何创新“造梦”?

文 | 智能相对论 作者 | 陈泊丞 这是春晚舞台西安分会场《山河诗长安》的一幕&#xff1a;“李白”现世&#xff0c;带领观众齐颂《将进酒》&#xff0c;将中国人骨子里的豪情与浪漫演绎得淋漓尽致。 这又是浙江义乌商品市场里的另一幕&#xff1a;只会说几个英文单词的女老板…

因为存在技术问题?《幻兽帕鲁》开发商称很难登录Switch

原标题&#xff1a;《幻兽帕鲁》首席执行官&#xff1a;移植Switch平台存在技术难度 易采游戏网6月25日消息&#xff1a;近日&#xff0c;《幻兽帕鲁》的开发商Pocketpair在接受媒体采访时讨论了将游戏移植到任天堂Switch平台的可能性。Pocketpair首席执行官Takuro Mizobe表示&…

fail2ban自动屏蔽之jumpserver

fail2ban是一款实用软件&#xff0c;可以监视你的系统日志&#xff0c;然后匹配日志的错误信息&#xff08;正则式匹配&#xff09;执行相应的屏蔽动作。 jumpserver是一款开源堡垒机&#xff0c;其拥有一定的防护登录&#xff0c;也可以做登录限制&#xff0c;但是相对于防火…

【深度强化学习】如何使用多进程(multiprocessing、pipe)来加速训练

文章目录 实验结果实现思路思路1思路2 进程与线程介绍如何实现multiprocessing、Pipe的范例关于时间对比上的问题代码修改收敛为何不稳定 技巧进程资源抢占问题线程问题cpu和gpu问题 进阶&#xff08;还没看懂/还没实验&#xff09;附代码raw代码mul代码 实验结果 实验平台&am…

Vue下载接口返回流的处理

1.下载接口返回流如下&#xff1a; 2.可以写公共方法处理 excelDownload(obj, name Date.now(), suffix xlsx) {//Date.now()获取当前日期const url window.URL.createObjectURL(//Blob是二进制大对象new Blob([obj], { type: application/vnd.ms-excel }))const aDOM docu…

在Visual Studio Code中使用Phi-3模型

更多数字生产力内容&#xff0c;欢迎关注我的公众号“ONE生产力”。 先前的文章中&#xff0c;我们已经介绍使用LM Studio在本地环境中运行Phi-3。LM Studio是一款革命性的桌面应用程序&#xff0c;它允许用户在自己的计算机上本地运行、管理和部署大型语言模型&#xff0c;但有…

走近数据变更捕获(CDC):定义、优势和用例

在当今快节奏的数字化环境下&#xff0c;企业需要数据来做出决策、提高运营效率、优化客户体验。然而&#xff0c;获得最新最准确的数据有时并不容易&#xff0c;尤其是当数据来自于多个系统和应用程序时。这时&#xff0c;数据变更捕获&#xff08;Change Data Capture&#x…

内存卡数据移走了怎样恢复?简易步骤与解决方案

随着科技的快速发展&#xff0c;内存卡已成为我们日常生活中不可或缺的一部分&#xff0c;特别是在行车记录仪、手机、相机等设备上。然而&#xff0c;当内存卡中的数据意外移走或删除时&#xff0c;我们往往会感到焦虑和困惑。本文将为您介绍如何简易恢复内存卡中移走的数据&a…

基于SpringBoot+Vue北部湾地区助农平台设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还…

震惊!CURRENT_TIMESTAMP不能乱用

事情发生在签到和查询签到记录. 设置mysql时间默认值为CURRENT_TIMESTAMP可以随系统生成默认时间戳,即生成该数据的时间戳, 但是有些特殊场景要避免由mysql给我们生成默认时间: 1、首先签到成功之后返回给前端, 2、前端收到执行成功之后立马去查询签到记录, 3、发现并没有…

leetcode-17-[235]二叉搜索树的最近公共祖先[701]二叉搜索树中的插入操作[450]删除二叉搜索树中的节点

一、[235]二叉搜索树的最近公共祖先 class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(rootnull){return null;}//左子树if (root.val > p.val && root.val > q.val) {return lowestCommonAncestor(root.left…

智慧校园-实习管理系统总体概述

智慧校园实习管理系统是专为高校、企业和学生设计的一体化数字解决方案&#xff0c;它革新了传统实习管理的方式&#xff0c;通过科技手段促进了实习资源的高效对接与管理。该系统整合了实习信息发布、申请管理、过程监督、评估反馈等多个核心环节&#xff0c;构建了一个无缝连…

钡铼BL101网关6串口Modbus转MQTT优化智慧园区设备互联

BL101网关&#xff1a;优化智慧园区设备互联的关键利器 在当今快速发展的智能化时代&#xff0c;智慧园区管理对于设备之间的高效互联至关重要。钡铼&#xff08;BL101&#xff09;网关作为一款功能强大的Modbus转MQTT设备&#xff0c;不仅支持多种通信协议和硬件接口&#xf…

Excel条件格式的经典用法

目录&#xff1a; 一、自动设置填充颜色 二、设置Excel到期自动销毁 三、隔行自动标记 四、美化表格 五、快速突出显示重复值 六、标记空单元格 七、突出显示前N名单元格数值 八、表格添加新内容自动加边框 一、自动设置填充颜色 1、选择内容 首先我们选中表格的数据…