生命周期forceUpdate流程

简介: 生命周期forceUpdate流程

forceUpdate强制更新,就是不需要经过阀门,直接对render进行更改


想要对其进行修改验证,可以先将阀门关闭,然后创建force对象


shouldComponentUpdate(){
                console.log("shouldComponentUpdate");
                return false;
                // 在这里开启TRUE那么就返回true,返回true那么就返回false
            }
<!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>
    <link rel="stylesheet" href="./">
</head>
<body>
    <div id="test"></div>
    <script src="./react-resource/react.development.js"></script>
    <script src="./react-resource/react-dom.development.js"></script>
    <script src="./react-resource/babel.min.js"></script>
    <script src="./react-resource/prop-types.js"></script>
    <script type="text/babel">
        class Count extends React.Component{
            // 构造器初始化
            state={count:0};
            constructor(props){
                console.log("constructor");
                super(props);
                this.state={count:0};
            }
            // 组件挂载完毕的输出
            componentDidMount(){
                console.log("componentDidMount");
            }
            add=()=>{
                const {count}=this.state;
                this.setState({count:count+1});
            }
            // 组件将要挂载的钩子
            componentWillMount(){
                console.log("componentWillMount");
            }
            death=()=>{
                ReactDOM.unmountComponentAtNode(document.getElementById("test"))
            }
            componentWillUnmount(){
                console.log("componentWillUnmount");
            }
            // 创建组件阀门
            shouldComponentUpdate(){
                console.log("shouldComponentUpdate");
                return false;
                // 在这里开启TRUE那么就返回true,返回true那么就返回false
            }
            // 组件将要更新的钩子
            componentWillUpdaye(){
                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.add}>点我加一</button>
                        <button onClick={this.force}>强制更新</button>
                    </div>
                )
            }
        }
        ReactDOM.render(<Count/>,document.getElementById("test"));
    </script>
</body>
</html>

相关文章
|
jenkins 测试技术 持续交付
提升软件测试效率与准确性的策略分析
【2月更文挑战第28天】 在快速迭代的软件发展周期中,高效的测试流程是确保产品质量和用户满意度的关键。本文旨在探讨提高软件测试效率和准确性的策略,包括自动化测试工具的选择、测试用例的优化设计以及持续集成的实践。通过分析当前软件测试领域面临的挑战,提出了相应的解决方案,并通过案例分析来展示这些策略的实际应用效果。文章的目的是为软件测试工程师提供实用的指导和参考,帮助他们在保证测试质量的同时,缩短测试周期,降低成本。
320 1
|
Kubernetes 搜索推荐 应用服务中间件
【kubernetes】新版helm3的三大概念+快速指南+自定义charts模板
chart:代表helm包,包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。 Repository(仓库):用来存放和共享 charts 的地方。 Release :运行在 Kubernetes 集群中的 chart 的实例,一个 chart 通常可以在同一个集群中安装多次,每一次安装都会创建一个新的 release。
692 1
【kubernetes】新版helm3的三大概念+快速指南+自定义charts模板
|
5月前
|
安全 Java 数据安全/隐私保护
深入探讨 Spring Security 中的 DSL 设计
本文深入解析了 Spring Security 中的 DSL(领域特定语言)设计,探讨其在安全规则定义中的应用。文章首先介绍了 DSL 的基本概念及其分类,随后分析了 Spring Security 中配置 DSL、表达式 DSL 和用户构建 DSL 的实现与优势。这些 DSL 不仅简化了复杂安全规则的配置,还提升了代码的可读性和开发效率。最后,文章总结了 DSL 在降低复杂性、增强灵活性和适配复杂场景中的重要作用,为开发者提供了学习和实践的方向。
151 0
|
10月前
|
机器学习/深度学习 人工智能 程序员
大模型时代的思考:小心陷入ChatLLMs构建的蜜糖陷阱-基于人类反馈的间接(反向)驯化-你是否有注意到?
本文探讨了大模型基于人类反馈训练的原理及其潜在风险,特别是大模型在迎合用户需求时可能带来的“蜜糖陷阱”。通过实际案例分析,强调了理性使用大模型的重要性,提出了保持批判性思维、明确人机协作边界、提升人类判断力和创新能力等建议,旨在让大模型真正为人类服务,而不是限制人类思维。
255 4
|
弹性计算 人工智能 测试技术
阿里云服务器价格表2023 国内云服务产品价格对比
阿里云轻量应用服务器2核2G3M带宽轻量服务器一年108元,2核4G4M带宽轻量服务器一年297.98元12个月;ECS云服务器e系列2核2G配置182元一年
928 0
|
测试技术 数据库连接 Python
|
缓存 JavaScript 前端开发
浅谈Vue3中的组合式API
浅谈Vue3中的组合式API
332 2
|
移动开发 分布式计算 中间件
【沉淀】从网络中间件到搜索,从移动开发到分布式计算平台,阿里高级专家李睿博谈自己的折腾路
整个过程我觉得还是爱最重要。有爱才有勇气才有希望。我是真的爱写代码。从小学就开始爱,到现在快三十年了也还爱。
30679 99
|
关系型数据库 Shell Nacos
【SpringCloud-Alibaba系列教程】16.动态配置yml以及分布式事务
动态配置yml、分布式事务以及使用seata。
1206 1
【SpringCloud-Alibaba系列教程】16.动态配置yml以及分布式事务
|
存储
FPGA-SDRAM设计学习(三)初始化、模式寄存器、激活和读命令
FPGA-SDRAM设计学习(三)初始化、模式寄存器、激活和读命令
452 0
FPGA-SDRAM设计学习(三)初始化、模式寄存器、激活和读命令