React 生命周期、Hooks

React 生命周期

react 生命周期是组件实例从创建运行到销毁的一系列过程
componentDidMount (挂载时)
componentDidMount (挂载时)

componentDidUpdate (更新时)
在这里插入图片描述

componentWillUnmount (卸载时)
在这里插入图片描述

Hooks

Hook 是一些可以让你在函数组件里"钩入" React state 及生命周期等特性的函数,Hook 不能在class 组件中使用,常用Hook: useState()、useEffect()、useRef()、useContext()……

Hook 的特点

  • 在组件之间复用状态逻辑,无需修改组件结构
  • 将组件中互相关联的部分拆分成更小的函数,而并非强制按照生命周期划分
  • 不编写 class 的清苦那个下使用 state 以及其他的 React 特性
    useState() 返回一对值,当前状态、更改状态方法
    导入
import React,{useState} from 'react'

定义状态 (msg: 当前状态 setMsg: 更改状态方法)

 const [msg,setMsg] = useState('初始值')

Effect Hook

Effect Hook:可以让你在函数组件中执行副作用操作

副作用:函数组件主要作用是通过数据渲染 UI 界面,处理这个之外的就是副作用

  • ajax 请求
  • 手动修改dom
  • localstorsge 操作

小结:useEffect 是在函数组件中添加 副作用 操作的 hooks 钩子函数

执行时机

  • 默认状态 - 首次执行 + 每次组件更新
  • 添加空[] 首次执行
  • 添加特定依赖项[count] - 首次执行 + 依赖项变化

① 默认情况,没有第二参数

初始执行,每次状态数据更新执行
class 类组件中,componentDidUpdate 生命周期函数

② 依赖行为[]

只在初始化执行
class 类组件中 componentDidMount

③ 依赖项目为状态数据可以是多个[msg,steMsg]

初始化执行,状态数据变化执行

④ 清理副作用

卸载时:componentWillUnmount

useEffect(()=>{
	return()=>{
		//清理副作用
	}
})

自定义 hooks

同步保存数据到 localStorage
(https://zhuanlan.zhihu.com/p/129789689)


版权声明:本文为qq_44635543原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。