【边做边学】React Hooks (二)——useEffect Hook

简介: 【边做边学】React Hooks (二)——useEffect Hook

useEffect Hook 是 React 中用于处理副作用操作的重要工具。它在函数式组件中取代了类组件中的生命周期方法(componentDidMountcomponentDidUpdatecomponentWillUnmount)的功能,用于执行那些不直接与渲染相关的操作。

基本用法

useEffect(() => {
  // 副作用操作
  console.log('Component did mount or update');
 
  // 返回的函数用于清理操作(componentWillUnmount)
  return () => {
    console.log('Component will unmount');
  };
}, [dependencies]);

参数说明:

  • 副作用操作:useEffect 的第一个参数中放入需要执行的副作用操作,可以是数据获取、订阅事件、手动操作 DOM 等。
  • 依赖数组: 作为 useEffect 的第二个参数,它是一个数组,包含影响副作用操作的变量。当这些变量发生变化时,useEffect 将重新执行。如果省略该参数,副作用操作将在每次渲染时都执行。

副作用操作的示例:

useEffect(() => {
  const fetchData = async () => {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    // 处理获取的数据
  };
 
  fetchData();
}, []); // 空数组表示仅在组件挂载时执行

注意事项:

  • 依赖数组: 如果省略依赖数组,useEffect 中的副作用操作将在每次组件渲染时都执行。如果提供了依赖数组,确保仔细考虑数组中的变量,以避免不必要的执行。
  • 清理操作: 返回的清理函数用于处理在组件卸载时的清理操作。这对于取消订阅、清除定时器等很有用。

useEffect 是处理副作用操作的强大工具,它使得在函数式组件中进行数据获取、订阅事件等异步和非渲染操作更加简便和灵活。

相关文章
|
11天前
|
前端开发 JavaScript
React_函数式Hooks和Class比较优缺点
React Hooks与Class组件都能返回JSX并接收props,但Hooks无`this`指向问题,用`useEffect`模拟生命周期,`memo`优化性能,状态更新用`useState`;Class组件通过生命周期方法、`PureComponent`或`shouldComponentUpdate`优化,状态用`this.state`和`this.setState`管理。
23 1
React_函数式Hooks和Class比较优缺点
|
11天前
|
前端开发 JavaScript
React中函数式Hooks之useRef的使用
React中函数式Hooks的useRef用于获取DOM元素的引用,示例代码演示了其基本用法。
27 3
|
7天前
|
存储 缓存 前端开发
使用React hooks,些许又多了不少摸鱼时间
该文章详细讲解了React Hooks的各种用法,包括useState、useEffect、useContext等基础Hooks,以及自定义Hooks的创建,并通过实际示例展示了如何利用Hooks简化组件状态管理和副作用操作,从而提高开发效率。
|
9天前
|
前端开发 JavaScript API
深入探索React Hooks与状态管理
深入探索React Hooks与状态管理
27 2
|
11天前
|
缓存 前端开发
React中函数式Hooks之memo、useCallback的使用以及useMemo、useCallback的区别
React中的`memo`是高阶组件,类似于类组件的`PureComponent`,用于避免不必要的渲染。`useCallback` Hook 用于缓存函数,避免在每次渲染时都创建新的函数实例。`memo`可以接收一个比较函数作为第二个参数,以确定是否需要重新渲染组件。`useMemo`用于缓存计算结果,避免重复计算。两者都可以用来优化性能,但适用场景不同:`memo`用于组件,`useMemo`和`useCallback`用于值和函数的缓存。
31 1
|
11天前
|
前端开发
React使用hooks遇到的坑_state中的某几个属性数据变成了空字符
本文讨论了在React使用hooks时遇到的一个问题:state中的某些属性数据变成了空字符。作者通过在修改函数中重新解构赋值来获取最新的state值,解决了因数据更新不及时导致的问题。
25 0
|
11天前
|
缓存 前端开发
React中函数式Hooks之useMemo的使用
React的`useMemo` Hook 用于优化性能,通过记忆返回值避免重复计算。它接收一个函数和一个依赖数组,只有当依赖项改变时,才会重新计算被记忆的值。这可以用于避免在每次渲染时都进行昂贵的计算,或者防止子组件不必要的重新渲染。例如,可以在父组件中使用`useMemo`包裹子组件,以依赖特定的props,从而控制子组件的渲染。
23 0
|
2月前
|
前端开发 JavaScript UED
React 基础与实践 | 青训营笔记
React 基础与实践 | 青训营笔记
44 0
|
3月前
|
前端开发 JavaScript Java
React 速通笔记
【7月更文挑战第17天】
41 1
|
前端开发
前端学习笔记202305学习笔记第二十九天-React keep alive原理之2
前端学习笔记202305学习笔记第二十九天-React keep alive原理之2
72 0

热门文章

最新文章

下一篇
无影云桌面