美文网首页
解读 React.memo

解读 React.memo

作者: GC风暴 | 来源:发表于2019-12-20 11:25 被阅读0次

介绍React.memo之前,先了解一下React.ComponentReact.PureComponent

React.Component

React.Component是基于ES6 class的React组件。

React允许定义一个class或者function作为组件,那么定义一个组件类,就需要继承React.Component.

例如:

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

注意:继承React.Component的React组件类中,render()为必须方法,其他都为可选。

React.PureComponent

React.PureComponentReact.Component类似,都是定义一个组件类。不同是React.Component没有实现shouldComponentUpdate(),而 React.PureComponent通过propsstate的浅比较实现了。

如果组件的propsstate相同时,render的内容也一致,那么就可以使用React.PureComponent了,这样可以提高组件的性能。

例如:

class Welcome extends React.PureComponent {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

当props和state中有复杂数据结果时,不好使用PureComponent

React.memo

React.memo是一个高阶组件,类似于React.PureComponent,不同于React.memofunction组件,React.PureComponentclass组件。

示例:

const MyComponent = React.memo(props => {
  /* render using props */
  return (

  );
});

这种方式依然是一种对象的浅比较,有复杂对象时无法render。在React.memo中可以自定义其比较方法的实现。

例如:

function MyComponent(props) {
  /* render using props */
}
function areEqual(prevProps, nextProps) {
  /*
  return true if passing nextProps to render would return
  the same result as passing prevProps to render,
  otherwise return false
  */
}
export default React.memo(MyComponent, areEqual);

该方法在V16.6.0才支持

推荐阅读《React 手稿》

相关文章

  • 解读 React.memo

    介绍React.memo之前,先了解一下React.Component和React.PureComponent。 ...

  • 如何使用React.memo()

    目录 包装函数 PureComponent React.memo() React.memo() 与Redux 其他...

  • React.memo()

    React 16.6.0 正式发布 React.memo() React.memo() 是什么? React.me...

  • Hooks进阶

    React.memo、useMemo、useCallback 的区别 React.memo 是对传入的 props...

  • [React Hooks] 样例学习---useWhyDidYo

    前置知识 React.memo React.memo 是一个高阶组件。类似于 React.PureComponen...

  • 封装了一个react下拉刷新上拉加载组件

    useState,useEffect,React.memo,Ts 使用等

  • React.memo

    React.memo 为高阶组件。它与 React.PureComponent 非常相似,但它适用于函数组件,但不...

  • react.memo

    React.memo 和 JS 的 memorize 函数的区别 https://dmitripavlutin.c...

  • React.memo

    1.基础使用 React.memo 相当于 React.pureComponent内部的shouldCompone...

  • React.memo

    先来看官网解释: React.memo 为高阶组件。如果你的组件在相同 props 的情况下渲染相同的结果,那么你...

网友评论

      本文标题:解读 React.memo

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