React18原理: 生命周期中特别注意事项

概述

  • 生命周期就是一个组件从诞生到销毁的全过程(包含错误捕获,这里暂且不聊这个)
  • react 在组件的生命周期中注册了一系列的钩子函数
  • 支持开发者在其中嵌入代码,并在适当的时机运行
  • 生命周期本质上就是组件中的钩子函数,主要有三个主要的钩子
    • 挂载
    • 更新
    • 卸载

首次挂载

  • 1 )初始化 constructor

    • 同一个类组件对象只会运行一次
    • 所以经常来做一些初始化的操作
    • 同一个组件对象被多次创建,它们的 constructor 互不干扰
    • 注意
      • 在 constructor 中尽量避免(禁止) 使用 setState
      • setState会造成页面的重新渲染
      • 但是在 初始化 阶段,页面都还没有将真实dom挂载到页面上,是没有任何重新渲染的意义的
      • 除异步情况,比如 setInterval 中使用 setState 是没问题的,
      • 因为在执行的时候页面早已渲染完成,但也最好不要使用,容易引起奇怪的问题,参考
        constructor(props) {
                 
                 
          super(props);
          this.state = {
                 
                 
            num: 1
          }
        
          // 不可以,直接warning
          this.setState({
                 
                 
            num: this.state.num + 1
          });
        
          // 可以使用,但不建议
          setInterval(() => {
                 
                 
            this.setState({
                 
                 
              num: this
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值