1. 什么是纯组件

    纯组件会对组件输入数据进行浅层比较,如果当前输入数据和上次输入数据相同,组件不会重新渲染。

    1. 什么是浅层比较

    比较引用数据类型在内存中的引用地址是否相同,比较基本数据类型的值是否相同。

    1. 如何实现纯组件

    类组件继承 PureComponent 类,函数组件使用 memo 方法

    1. 为什么不直接进行 diff 操作,而是要先进行浅层比较,浅层比较难道没有性能消耗吗

    和直接进行 diff 比较操作相比,浅层比较将消耗更少的性能。 diff 操作会重新遍历整颗 virtualDOM 树,而浅层比较只操作当前组件的 state 和 props。

    shouldComponentUpdate

    memo 基本使用
    将函数组件变为纯组件,将当前的 props 和上一次的 props 进行浅层比较,如果相同就组织组件重新渲染。需求:父组件维护两个状态,index 和 name,开启定时器让 index 不断发生变化,name 传递给子组件,查看父组件更新子组件是否也更新类。