React.memo的使用场景及原理

本文介绍了React.memo的原理和使用场景,它用于优化React应用性能,避免在父组件渲染时不必要的子组件重新渲染。通过例子展示了如何在子组件Child上使用React.memo,以及其简易实现方式,从而提高应用效率。
memo的原理

语法:React.memo(组件);
使用场景:当父组件重新渲染,没必要重新渲染的子组件可以使用memo包起来。

function Child(props){
  console.log('Child');
  return (
    <button>Child</button>
  )
}
// memo:如果你想让一个函数组件有一个功能,如果属性不变,就不要刷新。
Child=React.memo(Child);
function App() {
  let [name,setName]=React.useState('zhufeng');
  return (
    <div> 
      /* 在input框中输入内容,会走setName导致App组件重新渲染,但是子组件Child也会进行渲染。 */
      /* 解决:子组件使用memo包起来 */
      <input type="text" value={name} onChange={ev=>setName(ev.target.value)} />
      <Child/>
    </div>
  )
}
memo的简单实现
function memo(OldComponent) {
  return class extends React.PureComponent {
    render() {
      return <OldComponent {...this.props} />
    }
  }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值