一、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可以给对象属性指定描述符来监听属性的读取过程
image.png

(2)两种情况,新的数据不是响应式的

a.给对象添加的新属性
  1. let a = {name:'a'};
  2. new Vue({
  3. data:{
  4. a
  5. })
  6. a.newName = 'newA'
  7. // a.newName 不是响应式的

b.给数组新增元素
  1. let arr = [1,2,3]
  2. new Vue({
  3. data:{
  4. arr
  5. })
  6. 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