react 基础用法(useMemo)

useMemo这个hooks在react中具有缓存的作用,其表现形式与vue中的计算属性有点类似,可以使用这个hooks 来优化前端性能

使用方法为

js 复制代码
import { FC, useMemo, useState } from 'react';


const UseMemo: FC = () => {
    const [num1, setNum1] = useState(10)
    const [num2, setNum2] = useState(20)
    const [text, setText] = useState('hello')
    console.log(' add text')
    const sum = useMemo(() => {
        console.log('add sum')
        return num1 + num2
    },[num1, num2])
    return <div>
        <p>{sum}</p>
        <p>
            {num1} <button onClick={() => setNum1(num1 + 1)}> add num1 </button>
        </p>
        <p>
            {num2} <button onClick={() => setNum2(num2 + 1)}> add num2 </button>
        </p>
        <div>
            <input onChange={ e => setText(e.target.value)} value={text} type="text" />
        </div>
    </div>
}

export default UseMemo;

当我点击add num1 的时候 console.log(' add text') 和 console.log('add sun') 均会执行,其表现的形式就是 sum 依赖于num1 和 num2 这两个值 如果发生变化,则sum 方法就会执行console.log('add sum') 就会打印,而state 的变化会导致组件发生更新所以 console.log(' add text') 也会执行。 那么当我在输入框中输入值的时候,这个时候也就是text 发生变化console.log('add sum') 不会执行,就是text 不被sum依赖。

相关推荐
前端snow2 小时前
ai agent---mcp知识汇总
前端
计算机魔术师3 小时前
AI 写了一半代码,谁来背锅?Anthropic 的安全重构笔记
前端
明月_清风3 小时前
vLLM 深度实战:2026 年生产级 LLM 推理引擎完全指南
前端·后端·ai编程
风月说与山鬼3 小时前
七、uni-app页面与组件生命周期
前端·uni-app
绿岛之北3 小时前
Electron 安全第三章:URL 加载与 WebView
前端·electron
sunoo-2293 小时前
C 语言文件 IO 全攻略:从基础函数到实战踩坑(BMP 读取 + 词典查询)
linux·c语言·前端·笔记·vscode·学习
Shinner欣儿3 小时前
React18 并发渲染小记
前端
用户921080262863 小时前
AI 对话里的消息时间线分页:上滑加载更多历史记忆的实现与坑点
前端
PedroQue993 小时前
Vue-Router 2.4.0 新增可控重定向功能
前端·uni-app
阿萨德528号4 小时前
npm 包发布实战指南:从零发布、更新迭代到版本治理
前端·npm·策略模式