React学习第三天——生命周期

生命周期

注意:生命周期钩子函数通常指的是类组件独有的东西

常用的生命周期钩子函数

官网在介绍生命周期也分为了常用 和不常用 两大块进行介绍

常用:

  • constructor 初始化操作
    同一个组件对象只会创建一次
    不能在挂载页面前,调用setState,为了避免问题,构造函数中严禁使用setState

    class App extends React.Component{
    constructor(){
    super()
    //在constructor中进行初始化操作
    this.state = {
    val: ''
    }
    }
    }
    export default App

  • render
    render是整个类组件中必须书写的生命周期方法
    返回一个虚拟dom,会被挂载到虚拟dom树,最终渲染到真是dom
    render可能不止渲染一次,只要视图更新,render就会重新运行
    严禁使用setState,可能会导致无限递归

    import React from "react"
    class App extends React.Component{
    constructor(){
    super()
    // 主要做初始化操作,例如该组件的状态
    this.state = {
    val: ''
    }
    console.log('constructor');

    复制代码
    }
    handleClick = () => {
      this.setState({
        val: this.state.val + 1
      })
    }
    render(){
      /**
       * 会产生递归
       * this.setState({
       *    val: this.state.val + 1
       * })
       */
      console.log('render'); //执行多次
      return (
        <div>
          {this.state.val}
          <button onClick={this.handleClick}>+1</button>
        </div>
      )
    }

    }
    export default App

  • componentDidMount
    类似于vue中的mounted
    只执行一次
    可以使用setState
    通常情况,将网络请求,启动计时器等一开始需要的操作,书写咋该函数中

    componentDidMount(){
    console.log('componentDidMount');
    //接下来,发送Ajax亲求,或者绑定计时器等操作
    }

  • componentWillUnmount
    通常在该函数中销毁组件依赖的资源,比如计时器

    componentWillUnmount(){
    //组件销毁时调用该生命周期钩子

    复制代码
    }
相关推荐
Csvn1 小时前
运行时性能
前端
Never_every992 小时前
位图转矢量工具哪个好?实测抠抠图AI位图转矢量工具
大数据·前端
paopaokaka_luck2 小时前
宠物门店经营管理系统(销售与库存联动、进货自动记账、 退换与退款关联、员工个人业绩、ECharts 经营分析、滞销识别与客户分层、宠物档案年龄计算)
前端·javascript·spring boot·mysql·echarts·mybatis·1024程序员节
andrsted2 小时前
练题簿在线免费刷题:让整理过的资料,变成能反复练习的题库
学习·微信小程序·小程序·学习方法·刷题·1024程序员节
空中湖3 小时前
用 React 写数据大屏:为什么我不建议用图表库
前端·react.js·前端框架
Alsn863 小时前
Windows 安装 Ollama 及本地模型部署
学习·1024程序员节
欣欣之王来了4 小时前
原始HTML插值:v-html指令的使用与安全风险
前端·学习·架构·项目·vue3教程
IT_陈寒4 小时前
Redis的LRU淘汰策略坑了我一整天
前端·人工智能·后端
计算机魔术师4 小时前
砍半价格、参数再涨,国产旗舰追到 Opus 鼻尖了
前端
特立独行的猫A5 小时前
10 MB 的桌面 AI 客户端:用仓颉 + 系统 WebView 替代 Electron
前端·harmonyos