1、说一下对vue3的理解以及新特性有哪些
Vue3 是 Vue.js 的最新版本,相比于 Vue2,它带来了许多变化和升级
新特性:
1)更快的渲染速度:Vue3 通过重写了 reactivity system 和 compiler,显著提高了渲染性能。
2)Composition API:Vue3 引入了 Composition API,允许开发者将一个组件的逻辑分割成可复用的逻辑代码块,提高了组件的可复用性,并且使代码更加清晰简洁。
3)Teleport:Teleport 是 Vue3 中新引入的功能,允许你将一个组件渲染到 DOM 树中的任何位置,使得像模态框这类弹出式组件的实现变得更加容易。
4)更好的 Typescript 支持:Vue3 深度整合了 Typescript,提供更好的类型检查和代码补全功能。
5)其他改进:Vue3 中还有一些其他的改进,如支持 Fragments、更好的警告和错误提示等等。
2、写出Vue3中watch与watchEffect的区别
Vue3中的watch和watchEffect都用于监听数据的变化,但是它们之间有以下区别:
watch需要显式地监听数据变化,并且需要指定回调函数。在回调函数中可以处理数据变化的逻辑,也可以手动处理数据,因此灵活性更高。watch可以监听多个数据。
watchEffect则可以自动监听函数内部的响应式数据的变化,只要其内部引用的响应式数据发生变化,回调函数就会被调用。watchEffect不需要显式地声明监听哪些数据,因此代码更简洁,但也意味着它无法监听特定的数据。
3、ref的理解:
1)、功能:接受一个内部值,返回一个响应式的、可更改的 ref 对象,ref对象只有一个属性:value。
2)、使用ref对象:模板上不需要写 .value 属性(会自动解构),在js中,使用 .value 来完成数据的读写。
3)、ref接收基本类型和引用类型
ref可以接收基本类型。当接收的值为引用类型是,会自动将一个ref对象转为proxy对象
关键词:value,响应式,
4、reactive的理解:
1)功能:
接收普通对象数据,返回一个响应式代理对象,这个普通对象可以是多个数据
2)使用:
操作属性时,可以直接使用,不需要通过.value获取
3)注意:
a. 响应式转换是“深层的”会影响对象内部多有嵌套的属性
b. 通过代理对象,源对象的内部数据也是响应式的
关键词:对象、proxy、深层、数组、Map
5、vue3和vue2生命周期的变化,以及compositionApi中的生命周期钩子函数
1、Vue3.0中可以继续使用Vue2.x中的生命周期钩子,但有有两个被更名:
beforeDestroy改名为 beforeUnmount
destroyed改名为 unmounted
2、Vue3.0也提供了 Composition API 形式的生命周期钩子,Option API形式的钩子对应关系如下:
beforeCreate===>setup()
created=======>setup()
beforeMount =>onBeforeMount
mounted=====>onMounted
beforeUpdate===>onBeforeUpdate
updated =======>onUpdated
beforeUnmount ==>onBeforeUnmount
unmounted =====>onUnmounted