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依赖。

相关推荐
weixin199701080163 分钟前
《界面网商品详情页前端性能优化实战》
前端·性能优化
Mintopia11 分钟前
界面上的小细节,决定用户会不会骂产品
前端
Hommy8814 分钟前
【开源剪映小助手-客户端】前端界面设计
前端·开源·github
恋猫de小郭18 分钟前
抖音“极客”适配 Android 5 ~ 9 等老机型技术解读,都是骚操作
android·前端·flutter
IT_陈寒21 分钟前
SpringBoot自动配置的坑,我调试到凌晨三点才爬出来
前端·人工智能·后端
qq_3391911430 分钟前
kimi-cli 服务形式启动,kimi-cli无头模式 kimi-cli web启动,
服务器·前端·javascript
落魄江湖行30 分钟前
入门篇四:Nuxt4布局系统:让页面框架复用变得简单
前端·vue·nuxt4
恋猫de小郭31 分钟前
你的 AI 不好用,可能只是它在演你,或者在闹情绪
前端·人工智能·ai编程
那我懂你的意思啦33 分钟前
Vue2+Vue3学习
前端·vue.js·学习
@大迁世界33 分钟前
17.在 React 中如何根据条件决定渲染哪个组件?
前端·javascript·react.js·前端框架·ecmascript