做娱乐网站少10个页面,东莞网站建设 胶粘包装材料,怎样下载网页的视频,影视公司注册流程及费用useEffect 快速上手
useEffect(setup, dependencies?) 可以接收两个参数#xff0c;分别是回调函数与依赖数组. useEffect 用什么姿势来调用#xff0c;本质上取决于你想用它来达成什么样的效果。下面我们来简单介绍 useEffect 的调用规则。
每一次渲染后都执行的副作用分别是回调函数与依赖数组. useEffect 用什么姿势来调用本质上取决于你想用它来达成什么样的效果。下面我们来简单介绍 useEffect 的调用规则。
每一次渲染后都执行的副作用传入回调函数不传依赖数组。调用形式如下所示
useEffect(setup);
仅在挂载阶段执行一次的副作用传入回调函数且这个函数的返回值不是一个函数同时传入一个空数组。调用形式如下所示
useEffect((){// 这里是业务逻辑
}, [])
仅在挂载阶段和卸载阶段执行的副作用传入回调函数且这个函数的返回值是一个函数同时传入一个空数组。假如回调函数本身记为 A 返回的函数记为 B那么将在挂载阶段执行 A卸载阶段执行 B。调用形式如下所示
useEffect((){// 这里是 A 的业务逻辑// 返回一个函数记为 Breturn (){}
}, [])注意这种调用方式之所以会在卸载阶段去触发 B 函数的逻辑是由 useEffect 的执行规则决定的useEffect 回调中返回的函数被称为“清除函数”当 React 识别到清除函数时会在调用新的 effect 逻辑之前执行清除函数内部的逻辑。这个规律不会受第二个参数或者其他因素的影响只要你在 useEffect 回调中返回了一个函数它就会被作为清除函数来处理。
每一次渲染都触发且卸载阶段也会被触发的副作用传入回调函数且这个函数的返回值是一个函数同时不传第二个参数。如下所示
useEffect((){// 这里是 A 的业务逻辑// 返回一个函数记为 Breturn (){}
})上面这段代码就会使得 React 在每一次渲染都去触发 A 逻辑并且在下一次 A 逻辑被触发之前去触发 B 逻辑。
如果有一段 effect 逻辑需要在每次调用它之前对上一次的 effect 进行清理那么把对应的清理逻辑写进 useEffect 回调的返回函数上面示例中的 B 函数里就行了。
根据一定的依赖条件来触发的副作用传入回调函数同时传入一个非空的数组如下所示
useEffect((){// 这是回调函数的业务逻辑 // 若 xxx 是一个函数则 xxx 会在组件每次因 num1、num2、num3 的改变而重新渲染时被触发return xxx
}, [num1, num2, num3])这里一个示意数组是 [num1, num2, num3]。数组中的变量一般都是来源于组件本身的数据props 或者 state。若数组不为空那么 React 就会在新的一次渲染后去对比前后两次的渲染查看数组内是否有变量发生了更新只要有一个数组元素变了就会被认为更新发生了并在有更新的前提下去触发 useEffect 中定义的副作用逻辑。