React-Hooks之useMemo

简介: React-Hooks之useMemo
1.什么是useMemo Hook?

useMemo用于优化代码, 可以让对应的函数只有在依赖发生变化时才返回新的值

useMemouseCallback很像,useCallback只要组件不发生变化,那么指定依赖的函数返回的永远都是同一个函数,而useMemo只要指定的变量不发生变化,则返回的永远是同一个值

// 以下代码的作用: 只要countState没有发生变化, 那么useMemo返回的永远都是同一个值
    const decrement = useMemo(()=>{
        return ()=>{
            setCountState(countState - 1);
        };
    }, [countState]);

useCallback的实现原理其实就是通过useMemo来实现的

// 以下代码的作用: 只要countState没有发生变化, 那么useCallback返回的永远都是同一个函数
    function useCallback(fn, arr){
        return useMemo(()=>{
            return fn;
        }, arr);
    }

return (
        <div>
            <p>numState = {numState}</p>
            <p>countState = {countState}</p>
            <MemoHome handler={increment}/>
            <MemoAbout handler={decrement}/>
        </div>
    )

useCallback和useMemo区别:

  • useCallback返回的永远是一个函数
  • useMemo返回的是return返回的内容


目录
相关文章
|
2月前
|
缓存 前端开发
React中函数式Hooks之memo、useCallback的使用以及useMemo、useCallback的区别
React中的`memo`是高阶组件,类似于类组件的`PureComponent`,用于避免不必要的渲染。`useCallback` Hook 用于缓存函数,避免在每次渲染时都创建新的函数实例。`memo`可以接收一个比较函数作为第二个参数,以确定是否需要重新渲染组件。`useMemo`用于缓存计算结果,避免重复计算。两者都可以用来优化性能,但适用场景不同:`memo`用于组件,`useMemo`和`useCallback`用于值和函数的缓存。
72 1
|
2月前
|
缓存 前端开发
React中函数式Hooks之useMemo的使用
React的`useMemo` Hook 用于优化性能,通过记忆返回值避免重复计算。它接收一个函数和一个依赖数组,只有当依赖项改变时,才会重新计算被记忆的值。这可以用于避免在每次渲染时都进行昂贵的计算,或者防止子组件不必要的重新渲染。例如,可以在父组件中使用`useMemo`包裹子组件,以依赖特定的props,从而控制子组件的渲染。
33 0
|
3月前
|
缓存 前端开发 JavaScript
React.memo 与 useMemo 超厉害!深入浅出带你理解记忆化技术,让 React 性能优化更上一层楼!
【8月更文挑战第31天】在React开发中,性能优化至关重要。本文探讨了`React.memo`和`useMemo`两大利器,前者通过避免不必要的组件重渲染提升效率,后者则缓存计算结果,防止重复计算。结合示例代码,文章详细解析了如何运用这两个Hook进行性能优化,并强调了合理选择与谨慎使用的最佳实践,助你轻松掌握高效开发技巧。
80 0
|
4月前
|
前端开发 JavaScript 数据格式
react18【系列实用教程】Hooks (useState,useReducer,useRef,useEffect,useContext,useMemo,useCallback,自定义 Hook )
react18【系列实用教程】Hooks (useState,useReducer,useRef,useEffect,useContext,useMemo,useCallback,自定义 Hook )
88 1
|
4月前
|
缓存
react18【系列实用教程】useMemo —— 缓存数据 (2024最新版)
react18【系列实用教程】useMemo —— 缓存数据 (2024最新版)
94 0
|
6月前
|
前端开发 开发者
React useMemo钩子指南:优化计算性能
React useMemo钩子指南:优化计算性能
|
存储 缓存 前端开发
React中useMemo和useCallback如何做到性能优化?
React中useMemo和useCallback如何做到性能优化?
101 0
|
6月前
|
缓存 前端开发 JavaScript
React.Memo和useMemo的区别?
React.Memo和useMemo的区别?
176 0
|
缓存 前端开发 开发者
useMemo 和 useCallback -React.memo
useMemo 和 useCallback -React.memo
54 0
|
缓存 前端开发
使用 useMemo 提高 React 组件性能
使用 useMemo 提高 React 组件性能
64 0