1.响应式实现的差异
vue2使用了 es5提供的object.defineProperty实现对对象的数据性进行监听
缺点:1.无法监听原始数组的变换必须经过特殊处理(经过处理的有push shift unshift 等)
2.无法监听属性的添加与删除 解决方案:$set()和$delete()
vue 3 使用了Proxy 劫持了对象的数据属性变换,当属发生改变的时候 set捕获器会触,当属发删除的时候会触发deleteproperty捕获,从而触发页面渲染,
同时也通过这两个捕获器解决了 vue2中的两个缺点
2.创建方式
vue2 使用的是 new vue({...选项})构造函数的方式创建
vue3 使用creatApp(//根组件)方法创建
3.片断特性
vue2 组件中的顶层 templete 下不允许有多个节点,都是通过一个大的div进行包裹
<template>
<div>
<div >…</div>
<header>...</header>
<main>...</main>
<footer>...</footer>
</div>
</template>
vue3 允许单文件组件中的templete元素下有多个节点
<template>
<header>...</header>
<main>...</main>
<footer>...</footer>
</template>
4. 新增组件 Teleport
简单来说就是一个弹框
5. 删除filter 在vue2中主要是用来格式化的列入 时间戳格式化成正常日期
6. Opions api 它的生命周期只是将 beforeDestroy改成beforeUnmount ,将destroyed改变成 Unmounted 其他的沿用vue2的生命周期
Composition api 它的生命周期
使用setup代替了beforeCreat 和 created 的生命周期
onBeforeMount 获取不到DOM, onMounted可以获取DOM
onBeforeUpdate获取的是更新之前的DOM,onUpdated获取的是更新之后的DOM
onBeforeUnmount()在组件卸载之前调用, onUnmounted在组件实例被卸载之后调用
7. 添加了Suspense异步依赖
简单的来说,就是子组件中有多个一个加载的时候需要所有的异步加载完成后才会展示整个内容