码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • react-新旧生命周期


    文章目录

    • 旧版生命周期
    • 新版生命周期

    旧版生命周期

    旧版生命周期

    所适应的版本: React < 16.0.0

    1. contsructor
      1. 同一个组件对象只会创建一次
      2. 不能在第一次挂载到页面之前, 调用setState, 为了避免问题, constructor中严禁使用setState
    2. componentWillMount
      1. 正常情况下,也只会运行一次
      2. 可以使用setState,但是为了避免bug,不推荐使用,因为在某些特殊情况下,该函数会被调用多次
    3. render
      1. 返回一个虚拟dom,会被挂载到虚拟dom树中, 最终渲染到真实dom中
      2. render可能不止运行一次,只需要重新渲染,就会重新运行
      3. 严禁使用setState,会造成无限递归渲染
    4. componentDidMount
      1. 只会执行一次
      2. 可以使用setState
      3. 通常情况下,会将网络请求,启动计时器等一开始需要的操作,书写到该函数中
    5. 组件进入等待状态(活跃状态)
    6. componentWillReceiveProps
      1. 即将接受新的属性值, 参数为新的属性对象,this.props尚未发生变化
      2. 该函数可能会导致一些bug,所以不推荐用
    7. shouldComponentUpdate
      1. 指示react是否渲染组件,需要返回布尔值,true为渲染,false为不渲染
      2. 默认返回true
    8. componentWillUpdate
      1. 组件即将被重新渲染,不咋用
    9. componentDidUpdate
      1. 往往在该函数中操作dom,改变元素
    10. componentWillUnmount
      1. 通常在该函数中销毁一些组件依赖的资源,比如计时器

    新版生命周期

    所适应的版本: React >= 16.0.0
    新版生命周期

    1. getDerivedStateFromProps
      1. 通过参数可以获取新的属性和状态
      2. 该函数是静态的
      3. 该函数的返回值会覆盖掉组件状态
      4. 没啥用
    2. getSnapshotBeforeUpdate
      1. 触发时机: 真实dom构建完成,但并未渲染到页面时触发
      2. 在该函数中,常做一些dom操作
      3. 该函数需要与componentDidUpdate一起用(目测不用报警告)
      4. 该函数的返回值(不写返回值报警告),会作为componentDidUpdate的第三个参数
  • 相关阅读:
    CPT203-Software Engineering
    数据结构——常见链表算法题
    如何正确实现一个自定义Exception(二)
    【软件测试】快速入行软件测试
    浏览器的缓存机制 强制缓存 && 协商缓存
    微服务保护——sentinel
    Postman接收列表、数组参数@RequestParam List<String> ids
    Mybatis 在 insert 插入操作后返回主键 id
    Azure AD Domain Service(二)为域服务中的机器配置 Azure File Share 磁盘共享
    git中添加不上传的文件夹或文件的名字
  • 原文地址:https://blog.csdn.net/yuey0809/article/details/126032926
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号