今天看了下模拟面试的视频,发现有不少东西自己都不太了解,知道答案后想在这里记录下,顺便完善下自己的前端知识。
1. WebSoket检测断联
-
监听
onclose事件连接关闭时会触发
onclose事件,无论正常关闭还是异常断开(如网络中断)都会触发。 -
二、心跳机制(Heartbeat)
WebSocket 没有内置的保活机制,长时间无数据传输可能被服务器或中间代理(如负载均衡)主动断开。通过心跳检测可主动验证连接有效性:
2. qiankun子应用不同的框架如何共享信息
-
initGlobalState
主应用通过
initGlobalState初始化全局状态,并暴露修改方法,随后子应用接收并监听全局状态 ,无论子应用使用什么框架,都能通过props获取全局状态和监听方法 -
放在页面缓存里,比如我们常见的localStorage/sessionStorage
-
URL传参,就是我们常见的地址栏传参。
3.监听DOM的变化
这个比较简单,我们可以使用Mutation Observer
4.Vue2为什么数组无法监听
这是因为Vue2中改写(二次封装)了数组的push、pop、shift、unshift方法,其次当时Vue2只考虑了性能,但是数组可以无限长度,去代理太消耗性能了,所以Vue3进行了动态代理。
5.为什么webpack的首屏加载快,但是更新慢,为什么Vite更新快,但是首屏加载慢?
这个原理其实是这样的,webpack是加载完成后再更新页面,这时候压力全在wabpack打包加载的时候了,这时候打开页面就不需要再去加载所需要的逻辑,而Vite是先更新打开了页面,随后在页面里加载逻辑和代码,这时候就会导致首屏加载会显稍慢