1、vue2和vue3的区别
(1)vue2和vue3的双向绑定原理不同
vue2采用object.defineProperty的方式实现数据的双向绑定,可以劫持对象属性的setter和getter,
但是对于后添加的属性(删除的属性)是劫持不到的
vue3采用new Proxy()配合reflect的方式实现数据的双休绑定,可以劫持对象属性的setter和getter,即使后添加的属性也能劫持到,不需要循环
(2)vue2中有this.$set,用来解决数据增加,删除等更新操作时,页面不会更新的问题;
(3)vue3是完全响应式,不存在数据增加、删除后,试图不更新的情况,所以不存在this.$set
(4)vue2是选项式api,vue3是组合式api,也可以向下兼容,还可以用setup语法糖api
(5)v-if和v-for的优先级不同
vue2中for大于if;vue3中if大于for
(6)$ref和$children也不同
2、vue3中的mixins混入,写了一些方法,可以在全局或某个组件中使用,混入没有视图,template部分,
3、vue3中的hooks是一个函数式编程的思想,组件中的函数调用这个函数实现某种功能,主要解决的问题是让代码分隔,让功能、模块细分,使用项目的维护性更高,
解决问题:当我们写<script>标签加setup标识时,由于功能比较多,写在一起导致代码可能比较乱,这时候可以考虑把主要功能留在文件中,把一些其他辅助功能封装成hooks函数移出去,引入进来使用。
src下新建hooks文件夹
4、watch和computed的区别
5、vue3常用的响应式数据类型
ref基本类型的响应式、
reactive复杂类型的响应式、
toRef解构某一个值、
toRefs解构多个值
6、介绍teleport组件(传送门)及其使用场景
teleport是一个传送门,假如自己写弹出框,需要在页面居中位置展示,不受当前组件的限制,可以把盒子传送到body中
7、vue3相对于vue2提升了哪些东西
8、vue3的differ算法