千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)

1.类组件和函数组件的区别
- 函数组件是一个函数,返回一个jsx元素,而类组件是用es6语法糖class定义,继承component这个类。
- 类组件可以通过state进行状态管理,而在函数组件中不能使用setState(),在react16.8以后,函数组件可以通过hooks中的useState来进行模拟类组件中的状态管理。
- 类组件中有一系列的生命周期钩子函数,在函数组件中也需要借助hooks来使用生命周期函数。
2.React中的setState缺点是什么
setSatte执行的时候可以简单的认为,求属于原生js执行的空间,那么就是属于同步。被react处理过的空间属于异步,这其实也是一种性能的优化,如果多次使用setState修改值,那么在一部中会先进行合并,再进行渲染,降低了操作dom的次数。
3.React组件中props和state有什么区别
1.props是从外部传入组件的参数,一般用于父组件向子组件通信,在组件之间通信使用;state一般用于组件内内部的状态维护,更新组件内部的数据,状态,更新组件的props等。
2.props不可以在组件内部修改,只能通过父组件进行修改,state在组件内部通过setState修改。
4.虚拟DOM的优劣如何?实现原理?
- 虚拟dom是用js模拟一颗dom树,放在浏览器内存中,相当于js和真实dom中加了一个缓存,利用dom diff算法避免了没有必要的dom操作,从而提高性能。
- 虚拟dom具有批量处理和高效diff算法,最终表现在DOM上的修改只是变更的部分,可以保证非常高效的渲染,优化性能。
- 虚拟DOM不会立马进行排版和重绘操作,对虚拟DOM进行频繁修改,最后一次性比较并修改真实DOM中需要修改的部分。
- 虚拟DOM有效降低大面积真实DOM的重绘与排版,因为最终于真实DOM比较差异,可以只渲染局部