一、composition Api
1.Options Api
特点:简单易学
缺点:当组件变得复杂时,可读性边差,需要上下滚动阅读组件
2.composition Api
(1)定义数据和使用数据放在一起
(2)不同的功能能随意拆分并引用
二、响应式机制 proxy
用proxy来代替Object.defineProperty
1.Object.defineProperty不能检测数组和对象的变化
(1)vue2文档中写到,由于js的限制
vue不能检测数组和对象的变化,就是指Object.defineproperty本身的限制,Object.defineProperty可以给对象属性指定描述符来监听属性的读取过程
(2)两种情况,新的数据不是响应式的
a.给对象添加的新属性
let a = {name:'a'};
new Vue({
data:{
a
})
a.newName = 'newA'
// a.newName 不是响应式的
b.给数组新增元素
let arr = [1,2,3]
new Vue({
data:{
arr
})
arr.push(5)
c.所以有了Vue.set方法
给对象添加一个property,且这个property是响应式的,能触发视图更新
2.proxy
为对象创建一个代理,实现基本操作的拦截与自定义(查找、赋值、枚举、函数调用等)
三、全新全家桶 vuex和vue-router
vue是个”渐进式“框架,vue.js是其核心库,除此之外还有其他周边库如vuex、vue-router、vue-i18n等,核心库和周边库共同组成了vue。vue3更新了全家桶
四、新的TypeScript支持
1.vue3是用typescript重构的
vue3中可以直接使用typeScript,但不意味着任何情况下都可以需要用typescript
2.typescript优势在于静态类型检查和环境声明
如果项目中需要用到以上两点,建议用ts,否则就无谓地增加了项目复杂度
五、vite
基于esmodule的打包工具,速度快,但是webpack更稳定成熟,商用项目还是建议使用webpack