千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)
2023-07-12 16:17 作者:有志者事竟成1111 | 我要投稿

react高频面试题(个人见解,如有错误,请指正)
1、类组件和函数式组件的区别
类组件是面向对象开发 可以拿到实例 基于实例做各种操作
函数式组件是面向过程开发 没有实例 所以需要借助hock函数来完成模拟生命周期钩子函数和解决无状态的问题
2、react中setState
直接修改状态,视图是不会刷新的,因为react不是mvvm,通过setState改变的状态,视图是会刷新的,但是值得注意的是,setState修改状态是同步的,修改完之后生成虚拟dom,加载到页面视图是异步的,没有办法立即拿到更新后的dom,但是setState的第二个参数是一个回调函数,可以在这里获取更新后的dom
3、虚拟dom的优劣
利用对象的结构描述真实的dom结构,在每一次更新之前,利用filber算法对比虚拟dom,注意这里需要一个key,用于提高对比的性能,同层同key比较效率更高,例如:循环一个长度为10 的li,真是dom会触发10次,虚拟dom只会触发一次