高途教育一面

164 阅读2分钟

1.react事件和dom事件有什么区别

如果DOM上绑定了过多的事件处理函数,整个页面响应以及内存占用可能都会受到影响。同时不同浏览器对于冒泡的实现并不一致,实现合成事件层有助于抹平不同浏览器之间的差别。

React并不是将click事件绑在该div的真实DOM上,而是在document处监听所有支持的事件,当事件发生并冒泡至document处时,React将事件内容封装并交由真正的处理函数运行。

  1. 合成事件的监听器是统一注册在document上的,且仅有冒泡阶段。所以原生事件的监听器响应总是比合成事件的监听器早
  2. 阻止原生事件的冒泡后,会阻止合成事件的监听器执行

2.闭包是什么

  • 闭包就是可以访问外层函数变量的函数,其可以缓存一些数据,但是也会造成内存泄露

3.什么会导致内存泄露

  • 闭包
  • 全局变量
  • 定时器
  • 事件监听器
  • Set和Map

juejin.cn/post/698418…

4.webpack如何异步打包

5.tree-shaking是什么

Tree-Shaking 是一种基于 ES Module 规范的 Dead Code Elimination 技术,它会在运行过程中静态分析模块之间的导入导出,确定 ESM 模块中哪些导出值未曾其它模块使用,并将其删除,以此实现打包产物的优化。

image.png

6.react的diff是怎么实现的

juejin.cn/post/711632…

7.虚拟DOM是什么,有什么用

  • 虚拟DOM是react为了提升效率以及适配更多浏览器或平台而创建的一种数据结构
  • 虚拟DOM是一种对象,里面主要由type(节点类型)、props(标签内部属性)、children(其内部的子节点)等信息构成

7.从一个数组中找出连续且和最大的子元素数组(至少包含一个子元素)