react lazy, suspense, memo

react lazy其实就是懒加载,比如你的父组件中加载了一个子组件,你没有使用react.lazy的话,他会直接去加载父组件和子组件中的代码(父+子.js),如果你使用了react.lazy在你加载父组件的时候(父.js),子组件将不会代码一起加载进去,而是当你需要渲染子组件的时候他的代码才会去加载(子.js),其实就是一个代码分割的作用

然后suspense其实也是搭配react.lazy一起使用的,fallback属性接受任何在组件加载过程中你想展示的 React 元素

const OtherComponent = React.lazy(() => import('./OtherComponent'));

function MyComponent() {
  return (
    
Loading...
}>
); }

suspense可以在你加载子组件代码时来一个显示,就是fallback里面的内容 

参考 https://www.jianshu.com/p/61d6920c9e8f

react.memo

其实就是针对函数式组件的性能优化

const memo = (props)  => React.memo(Mycomponent, (prevProps, nextProps) => 
  prevProps.name === nextProps.name
)

第一个参数Mycomponent是函数式组件,第二个参数是判断Mycomponent是否根据当前传入的props有没有改变的回调函数,返回true则props没有发生改变,所以不用rerender

你可能感兴趣的:(react lazy, suspense, memo)