You don't have javascript enabled. Good luck! :(

欢迎页

Welcome to Ganace's Blog


欢迎您来到Ganace 的个人博客。

在茫茫互联网的海洋里能够遇见,实在是一份不小的幸运。

诚挚地向您问候一声:您好,朋友!

这里是属于Ganace个人的隐秘小空间,记录了工作学习中遇到的知识点与灵感,以及生活中的碎碎念与吐槽突如其来的中二病尬尬的文艺时间锻炼腹肌的时刻惊喜的小发现等等。

想要在自己的平淡无奇的人生长河中留下些什么,

或者只是为了拯救老人家岌岌可危的记忆力,

仅此而已。

来到此地,分享与你。

也期待与您的再次相遇!

Share with Me


有任何的分享或者建议与吐槽,都可以Email我:ganace@foxmail.com

欢迎您的来信!

【Vue】Vue2与Vue3的区别总结(一) 模板指令/根标签/组合式和选项式/生命周期变化

  Mar 22, 2024     Ganace     Front-end-Foundation

Vue

Vue3 作为当前 Vue 的项目大势,开发当中需要注意区分 Vue2 与 Vue3 的区别以便切换新旧项目时可以流畅工作。记录一下 Vue2 与 Vue3 的区别总结笔记,温故知新。

v-model | v-if 与 v-for 的优先级 | v-on.native 修饰符
Vue3 可以没有根标签 | 组合式 API 和选项式 API | 生命周期变化

模板指令

一、v-model

prop:

value -> modelValue

事件:

input -> update:modelValue

Vue3 新增:

可以在同一个组件上使用多个 v-model 绑定 可以自定义 v-model 修饰符

二、v-if 与 v-for 的优先级

Vue2

在一个元素上同时使用,v-for 会优先作用

Vue3

在一个元素上同时使用,v-if 会优先作用

由于语法上存在歧义,建议避免在同一元素上同时使用两者。

三、v-on.native 修饰符

Vue3 v-on.native 修饰符已被移除。

组件

一、根节点不同

Vue2

必须有根标签。

Vue3

可以没有根标签,包裹在 fragement 虚拟标签中。

二、组合式 API 和选项式 API

Vue2 选项式 API

数据函数集中处理,逻辑复杂时不利于代码阅读

Vue3 组合式 API

同功能代码集中处理,利于书写维护

三、生命周期变化

1、 Vue2 到 Vue3 的改动

beforeDestroy —> onBforeUnmount

onBforeUnmount 在一个组件实例被卸载之前调用,当前,组件实例依然还保有全部的功能。

destroyed —> onUnmounted

onUnmounted 在一个组件实例被卸载之后调用。当前,其所有子组件都已经被卸载,所有相关的响应式作用 (渲染作用以及 setup() 时创建的计算属性和侦听器) 都已经停止。

2、 Vue3 <KeepAlive>包裹的组件,多两个生命周期钩子

activated

当组件被插入到 DOM 中时调用

deactivated

当组件从 DOM 中被移除时调用

3、 Vue2 生命周期 (创建、挂载、更新、销毁)

初始化生命周期事件

beforeCreated

初始化:数据监测、数据代理

created

解析模板,生成虚拟 DOM。有 el 或者$mount 的时候继续往下执行

————–^创建
beforeMount

将虚拟 DOM 转为真实 DOM 插入页面

mounted
————–^挂载
beforeUpdated (数据是新的,页面是旧的)

生成新的虚拟 DOM 与旧的虚拟 DOM 比较,页面更新

updated (数据是新的,页面也是新的)
————–^更新
beforeDestory (data、methods、指令……都还可以用,)

(beforeDestory 可以做收尾操作,例如关闭定时器,取消订阅消息等) 销毁 VM,销毁实例,解绑指令和事件监听器

destoryed
————–^销毁

3、 Vue3 组合式 API:生命周期钩子

onBeforeMount()

注册一个钩子,在组件被挂载之前被调用。

onMounted()

注册一个回调函数,在组件挂载完成后执行。

onBeforeUpdate()

注册一个钩子,在组件即将因为响应式状态变更而更新其 DOM 树之前调用。

onUpdated()

注册一个回调函数,在组件因为响应式状态变更而更新其 DOM 树之后调用。

onBeforeUnmount()

注册一个钩子,在组件实例被卸载之前调用。

onUnmounted()

注册一个回调函数,在组件实例被卸载之后调用。

onErrorCaptured()

注册一个钩子,在捕获了后代组件传递的错误时调用。

onActivated()

注册一个回调函数,若组件实例是 <KeepAlive> 缓存树的一部分,当组件被插入到 DOM 中时调用。

onDeactivated()

注册一个回调函数,若组件实例是 <KeepAlive> 缓存树的一部分,当组件从 DOM 中被移除时调用。