React Hooks 中 useMemo 的介绍

简介

  • useMemo主要用来解决使用React hooks产生的无用渲染的性能问题
  • 使用function的形式来声明组件,失去了shouldCompnentUpdate(在组件更新之前)这个生命周期,也就是说我们没有办法通过组件更新前条件来决定组件是否更新。而且在函数组件中,也不再区分mountupdate两个状态,这意味着函数组件的每一次调用都会执行内部的所有逻辑,就带来了非常大的性能损耗
  • 使用useMemo可以在第二个参数都发生变化时执行第一个参数里面的函数
    import React , {useState,useMemo} from 'react';
    
    function Example7(){
        const [xiaohong , setXiaohong] = useState('小红待客状态')
        const [zhiling , setZhiling] = useState('志玲待客状态')
        return (
            <>
                <button onClick={()=>{setXiaohong(new Date().getTime())}}>小红</button>
                <button onClick={()=>{setZhiling(new Date().getTime()+',志玲向我们走来了')}}>志玲</button>
                <ChildComponent name={xiaohong}>{zhiling}</ChildComponent>
            </>
        )
    }
    
    function ChildComponent({name,children}){
        function changeXiaohong(name){
            console.log('她来了,她来了。小红向我们走来了')
            return name+',小红向我们走来了'
        }
    
        const actionXiaohong = useMemo(()=>changeXiaohong(name),[name]) 
        return (
            <>
                <div>{actionXiaohong}</div>
                <div>{children}</div>
            </>
        )
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值