美文网首页
React.memo()

React.memo()

作者: lovelydong | 来源:发表于2019-10-17 11:42 被阅读0次

    React 16.6.0 正式发布 React.memo()

    React.memo() 是什么?

    React.memo() 和 PureComponent 很相似,它帮助我们控制何时重新渲染组件。

    组件仅在它的 props 发生改变的时候进行重新渲染。通常来说,在组件树中 React 组件,只要有变化就会走一遍渲染流程。但是通过 PureComponent 和 React.memo(),我们可以仅仅让某些组件进行渲染。

    const ToBeBetterComponent = React.memo(function MyComponent(props) {
      // only renders if props have changed
    })
    

    由于只有需要被渲染的组件被渲染了,所以这是一个性能提升。
    PureComponent 要依靠 class 才能使用。而 React.memo() 可以和 functional component 一起使用。

    import React from 'react';
    
    const MySnowyComponent = React.memo(function MyComponent(props) {
      // only renders if props have changed!
    });
    
    // can also be an es6 arrow function
    const OtherSnowy = React.memo(props => {
      return <div>my memoized component</div>;
    });
    
    // and even shorter with implicit return
    const ImplicitSnowy = React.memo(props => (
      <div>implicit memoized component</div>
    ));
    

    由于 React.memo() 是一个高阶组件,你可以使用它来包裹一个已有的 functional component:

    const RocketComponent = props => <div>my rocket component. {props.fuel}!</div>;
    
    // create a version that only renders on prop changes
    const MemoizedRocketComponent = React.memo(RocketComponent);
    

    相关文章

      网友评论

          本文标题:React.memo()

          本文链接:https://www.haomeiwen.com/subject/jcdlyctx.html