Ashun's 技術駅 Ashun's 技術駅
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • Vue
  • 现代web布局
  • React
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 技术资源
  • 第一阶段

    • HTML
  • 第二阶段

    • JavaScript
  • 第三阶段

    • Vue
  • 第四阶段

    • 实战项目
  • 每周测试

    • 每周
  • 其他

    • Vue引入UI框架
    • Web前端面试
    • Vue3-resource
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 福利资源
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Ashun

前端界的小学生
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • Vue
  • 现代web布局
  • React
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 技术资源
  • 第一阶段

    • HTML
  • 第二阶段

    • JavaScript
  • 第三阶段

    • Vue
  • 第四阶段

    • 实战项目
  • 每周测试

    • 每周
  • 其他

    • Vue引入UI框架
    • Web前端面试
    • Vue3-resource
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 福利资源
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • HTML

  • CSS

  • Vue

  • 现代web布局

  • React

    • 关于 react
    • 关于 redux
    • react 定义插槽
    • react 父子组件通信(第二篇)
    • react 父子组件通信(第一篇)
    • react 函数组件的生命周期有哪些
    • react 类组件和函数组件
    • react 实现监听器功能
  • 页面
  • React
ashun
2023-12-15

react 函数组件的生命周期有哪些

# react 函数组件的生命周期有哪些

在 React 中,函数组件原本没有生命周期方法,因为它们是无状态的。然而,随着 React 16.8 版本的引入,Hooks 的出现使得函数组件可以具有类组件类似的生命周期功能。以下是使用 Hooks 时函数组件可能涉及的生命周期方法:

  1. useState:

    • 作用: 用于在函数组件中添加状态。
    • 用法: const [state, setState] = useState(initialState);
  2. useEffect:

    • 作用: 用于处理副作用操作,例如数据获取、订阅、手动操作DOM等。
    • 用法:
      useEffect(() => {
        // 副作用操作
        return () => {
          // 在组件卸载时执行的清理操作
        };
      }, [dependencies]);
      
      1
      2
      3
      4
      5
      6
  3. useLayoutEffect:

    • 作用: 类似于 useEffect,但在浏览器 layout(布局)阶段之后同步执行。
    • 用法: useLayoutEffect(() => {}, [dependencies]);
  4. useMemo:

    • 作用: 用于在渲染期间进行性能优化,缓存计算结果。
    • 用法: const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
  5. useCallback:

    • 作用: 用于在渲染期间缓存回调函数,以防止它们在每次渲染时重新创建。
    • 用法: const memoizedCallback = useCallback(() => { /* callback */ }, [dependencies]);
  6. useContext:

    • 作用: 用于访问 React 上下文。
    • 用法: const contextValue = useContext(MyContext);
  7. useReducer:

    • 作用: 用于处理复杂的状态逻辑,替代 useState。
    • 用法:
      const [state, dispatch] = useReducer(reducer, initialState);
      
      1
  8. useRef:

    • 作用: 创建一个可变的 ref 对象,其 .current 属性可以在渲染期间被赋值。
    • 用法: const myRef = useRef(initialValue);

这些 Hooks 使得函数组件具有了更丰富的生命周期特性,允许你在组件渲染和更新的不同阶段执行逻辑。每个 Hook 都有其特定的用途,根据需要选择使用。使用这些 Hooks 可以更方便地处理函数组件的状态、副作用和性能优化。

编辑 (opens new window)
上次更新: 2023/12/15, 15:07:46
react 父子组件通信(第一篇)
react 类组件和函数组件

← react 父子组件通信(第一篇) react 类组件和函数组件→

最近更新
01
课件-react路由-V6
01-22
02
课件-国际化
01-22
03
课件-redux-toolkit
01-22
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式