当前位置: 首页 > news >正文

React旧有生命周期和新生命周期的解析

React组件生命周期(旧有格式)
在这里插入图片描述
新的生命周期
在这里插入图片描述
下面是旧有声明周期的案例演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/react.development.js"></script>
    <script src="../js/react-dom.development.js"></script>
    <script src="../js/babel.min.js"></script>
    <script src="../js/prop-types.js"></script>
</head>
<body>
    <div id="test"></div>
    <!-- 制作组件 -->
    <script type="text/babel">
        class Count extends React.Component{
            //构造器;
            constructor(props){
                console.log('我是构造器');
                super(props);
                //初始状态;因为在构造器内部,所以,需要加this关键字;
                this.state={count:0};
            }
            //组件将要挂载;
            componentWillMount(){
                console.log('组件将要挂载...');
            }
            //加1按钮的回调;
            add = () => {
                //获取原始状态;
                const{count}=this.state;
                //更新状态;
                this.setState({count:count+1});
            }
            death= () => {
                ReactDOM.unmountComponentAtNode(document.getElementById('test'));
            }
            //挂载完毕;
            componentDidMount(){
                console.log('组件挂载完毕...');
            }
            //卸载组件;
            componentWillUnmount(){
                console.log('组件卸载了...');
            }
            //组件更新
            shouldComponentUpdate(){
                console.log('shouldComponentUpdate...');
                return true;
            }
            //组件将要更新
            componentWillUpdate(){
                console.log('componentWillUpdate...');
            }
            //组件更新
            componentDidUpdate(){
                console.log('componentDidUpdate...');
            }
            //强制更新;
            force= () => {
                this.forceUpdate();
            }
            //渲染;
            render(){
                console.log('render');
                const {count}=this.state;  //这句不要忘了加
                return(
                    <div>
                        <h2>当前求和是:{count}</h2>
                        <button onClick={this.add}>按钮测试</button>
                        <button onClick={this.death}>卸载组件</button>
                        <button onClick={this.force}>强制更新</button>
                    </div>
                );
            }
        }
        //调用;
        ReactDOM.render(<Count/>,document.getElementById('test'));
    </script>
</body>
</html>

相关文章:

  • linux expect if判断
  • uniapp一键生成iOS通用链接
  • 即时零售加速布局,社区团购的优势依旧非常明显
  • python基础(一)数据类型
  • 基于问题驱动法的计算机组成原理教学研究
  • Python实战|「甜点消消」游戏数据分析过程
  • Vue3手写分页器
  • Apache,PHP安装及Apache引入PHP模块
  • chosen.jquery.js 插件的使用和总结
  • 全网最牛自动化测试框架系列之pytest(9)-标记用例(指定执行、跳过用例、预期失败)
  • ARM汇编
  • Docker部署并启动RabbitMQ
  • 树莓派远程音乐播放器
  • LeetCode用数组建立二叉树
  • Leetcode560. 和为 K 的子数组
  • __proto__ 和 prototype的关系
  • AWS实战 - 利用IAM对S3做访问控制
  • CSS 提示工具(Tooltip)
  • Electron入门介绍
  • ES10 特性的完整指南
  • ES学习笔记(12)--Symbol
  • EventListener原理
  • exif信息对照
  • Mybatis初体验
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • PAT A1120
  • SpiderData 2019年2月23日 DApp数据排行榜
  • SQLServer插入数据
  • Vim Clutch | 面向脚踏板编程……
  • 前端相关框架总和
  • 实习面试笔记
  • 算法---两个栈实现一个队列
  • 我的zsh配置, 2019最新方案
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • #Linux(make工具和makefile文件以及makefile语法)
  • #pragma once与条件编译
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (arch)linux 转换文件编码格式
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (pojstep1.3.1)1017(构造法模拟)
  • (层次遍历)104. 二叉树的最大深度
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (论文阅读40-45)图像描述1
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .Net8 Blazor 尝鲜
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • /etc/skel 目录作用