04-react组件生命周期

news/2024/7/15 17:58:04 标签: react.js, 前端, javascript

组件的生命周期

概述

  • 意义:组件的生命周期有助于理解组件的运行方式、完成更复杂的组件功能、分析组件错误原因等
  • 组件的生命周期:组件从被创建到挂载到页面中运行,再到组件不用时卸载的过程
  • 钩子函数的作用:为开发人员在不同阶段操作组件提供了时机。
  • 只有 类组件 才有生命周期。

生命周期的整体说明

  • 每个阶段的执行时机
  • 每个阶段钩子函数的执行顺序
  • 每个阶段钩子函数的作用
  • http://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/

在这里插入图片描述

挂载阶段

执行时机:组件创建时(页面加载时)

执行顺序:

在这里插入图片描述

钩子 函数触发时机作用
constructor创建组件时,最先执行1. 初始化state 2. 创建Ref等
render每次组件渲染都会触发渲染UI(注意: 不能调用setState()
componentDidMount组件挂载(完成DOM渲染)后1. 发送网络请求 2.DOM操作

更新阶段

  • 执行时机:1. setState() 2. forceUpdate() 3. 组件接收到新的props
  • 说明:以上三者任意一种变化,组件就会重新渲染
  • 执行顺序

在这里插入图片描述

钩子函数触发时机作用
render每次组件渲染都会触发渲染UI(与 挂载阶段 是同一个render)
componentDidUpdate组件更新(完成DOM渲染)后DOM操作,可以获取到更新后的DOM内容,不要调用setState

卸载阶段

  • 执行时机:组件从页面中消失
钩子函数触发时机作用
componentWillUnmount组件卸载(从页面中消失)执行清理工作(比如:清理定时器等

http://www.niftyadmin.cn/n/1397217.html

相关文章

05-react原理-setState-组件更新机制-组件性能优化

setState 更新数据 setState() 是异步更新数据的注意:使用该语法时,后面的 setState() 不要依赖于前面的 setState() 1. 当你调用 setState 的时候,React.js 并不会马上修改 state (为什么) 2. 而是把这个对象放到一…

06-react-组件复用-render-props技术

mixins(已废弃) https://react.docschina.org/blog/2016/07/13/mixins-considered-harmful.html mixin引入了隐式依赖关系 对于组件中的方法和数据的来源不明确,不容易维护 Mixins 导致名称冲突Mixins 导致滚雪球般的复杂性 render-props技术…

07-hooks基本使用-useState-useEffect-自定义hooks

React Hooks基础 React Hooks 介绍React Hooks 基础 React Hooks 介绍 Hooks 是什么为什么要有 Hooks Hooks 是什么 Hooks:钩子、钓钩、钩住Hooks 是 React v16.8 中的新增功能作用:为函数组件提供状态、生命周期等原本 class 组件中提供的 React 功…

08-hooks进阶-useRef-useContext-React.memo高阶组件

Hooks其他API useRef hook import { useRef } from react<inputclassName"new-todo"placeholder"What needs to be done?"autoFocusonKeyUp{onKeyUp}ref{inputRef}/>const App () > {const [color, setColor] useState(red)return (// 用Con…

redux课程

课程说明 目的&#xff1a;为React移动端项目做支撑&#xff1a;redux、redux-thunk、react-redux&#xff08;useDispatch、useSelector &#xff09;、redux-devtools-extension 内容顺序&#xff08;课程目标&#xff09;&#xff1a; redux单独使用react-redux 结合reac…

01-TypeScript 介绍-TypeScript常用类型

TypeScript TypeScript 介绍TypeScript 初体验TypeScript 常用类型TypeScript 高级类型TypeScript 类型声明文件在 React 中使用 TypeScript TypeScript 介绍 TS 官方文档TS 中文参考 - 不再维护 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q…

vue2快速生成代码片段

vue2快速生成代码片段 {// Place your snippets for vue here. Each snippet is defined under a snippet name and has a prefix, body and // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible varia…

ts文件引入外部资源报错问题

ts中import图片 webpacktypescript项目中如下引入图片会报错(提示找不到该模块)&#xff1a; import xxx from "/imgs/KingLeague/appointment-btn.png"; import xxx from "/imgs/KingLeague/game-info.png";解决&#xff1a;添加图片模块声明文件 如下…