web前端培训Vue3面试考点分享

北京湿疹医院 http://pf.39.net/bdfyy/bdfrczy/210405/8814564.html

1、Vue3.0性能提升主要是通过哪几方面体现的?

1.响应式系统提升

vue2在初始化的时候,对data中的每个属性使用definepropery调用getter和setter使之变为响应式对象。如果属性值为对象,还会递归调用defineproperty使之变为响应式对象。

vue3使用proxy对象重写响应式。proxy的性能本来比defineproperty好,proxy可以拦截属性的访问、赋值、删除等操作,不需要初始化的时候遍历所有属性,另外有多层属性嵌套的话,只有访问某个属性的时候,才会递归处理下一级的属性。

优势:

可以监听动态新增的属性;

可以监听删除的属性;

可以监听数组的索引和length属性;

2.编译优化

优化编译和重写虚拟dom,让首次渲染和更新dom性能有更大的提升vue2通过标记静态根节点,优化diff算法vue3标记和提升所有静态根节点,diff的时候只比较动态节点内容

Fragments,模板里面不用创建唯一根节点,可以直接放同级标签和文本内容

静态提升

patchflag,跳过静态节点,直接对比动态节点,缓存事件处理函数

3.源码体积的优化

vue3移除了一些不常用的api,例如:inline-template、filter等使用tree-shaking

2.CompositionApi与Vue2.x使用的OptionsApi有什么区别?

OptionsApi

包含一个描述组件选项(data、methods、props等)的对象options;

API开发复杂组件,同一个功能逻辑的代码被拆分到不同选项;

使用mixin重用公用代码,也有问题:命名冲突,数据来源不清晰;




转载请注明:http://www.aierlanlan.com/rzdk/3678.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了