react 的理解
调用 setState 之后发生了什么?
在代码中调用 setState 函数之后,React 会将传入的参数对象与组件当前的状态合并,然后触发所谓的调和过程(reconciliation);经过调和过程,react 会以相对高效的方式根据新的状态构建 react 元素树并且进行重新渲染整个 ui 界面;在react 得到元素树之后,react 会自动计算出新的树和老树的节点差异,然后根据差异对界面进行最小化重渲染;在差异计算算法中,react 能够相对精确的知道哪些位置发生了改变以及应该如何改变,这就保证了哪里更改了就重新渲染哪里,而不是全部去重新的渲染,对性能以及体验上有很好的效果。
在什么情况下你会优先选择使用 Class Component 而不是 Functional Component?
类组件和函数式组件其实在本质上是没有太大的区别的,在最开始的时候,没有 react Hooks 的时候,可能我们用类组件的时候可以通过 this.props 获取到父组件的值,这时候由于异步等情况产生的值变更的话,在类组件中是可以获取到的,但是在函数式组件中就不能获取到了,而且在函数式组件中也是不存在 state 和钩子函数的;