tk挠痒痒网址发布页-秘密武器
历史搜索

P08:useMemo优化React Hooks程序性能

游客2025-05-16 09:39:01

useMemo主要用来解决使用 React hooks 产生的无用渲染的性能问题。使用 function 的形式来声明组件,失去了shouldCompnentUpdate(在组件更新之前)这个生命周期,也就是说我们没有办法通过组件更新前条件来决定组件是否更新。而且在函数组件中,也不再区分mountupdate两个状态,这意味着函数组件的每一次调用都会执行内部的所有逻辑,就带来了非常大的性能损耗。useMemouseCallback都是解决上述性能问题的,本文先学习useMemo

import React, {useState} from 'react';

function Example7() {
    const [ahong,setAhong] = useState('阿红待客状态')
    const [yuanyuan,setYuanyuan] = useState('圆圆待客状态')
    return (
        <>
            <button onClick={()=>{setAhong(new Date().getTime())}}>阿红</button>
            <button onClick={()=>{setYuanyuan(new Date().getTime() + '圆圆向我们走来')}}>圆圆</button>
            <ChildComponent name={ahong}>{yuanyuan}</ChildComponent>
        </>
    )
}

父组件调用了子组件,子组件我们输出两个姑娘的状态,显示在界面上。代码如下:

function ChildComponent({name,children}){
    function changeAhong(name){
        console.log('她来了!阿红向我们走来了')
        return name + ',阿红向我们走来'
    }

    const actionAhong = changeAhong(name)
    return (
        <>
            <div>{actionAhong}</div>
            <div>{children}</div>
        </>
    )
}

然后再导出父组件,让index.js可以渲染。

export default Example7

GIF 效果展示

P08:useMemo优化React Hooks程序性能 1

这时在浏览器中点击一下圆圆按钮,changeAhong就不再执行了。也节省了性能的消耗。案例只是让你更好理解,你还要从程序本身看到优化的作用。好的程序员对自己写的程序都是会进行不断优化的,这种没必要的性能浪费也是绝对不允许的,所以useMemo的使用在工作中还是比较多的。希望小伙伴们可以掌握。

本文是由用户"游客"发布,所有内容的版权归原作者所有。没有经过书面许可,任何单位或个人不得以任何形式复制、转载、引用本网站的内容。否则将追究法律责任。

相关专题