vue3学习

Vue3带来了什么

1.性能的提升
打包大小减少了41%
初次渲染快了55%,更新渲染快了133%
内存减少54%

2.源码的升级
使用Proxy代替defineProperty实现响应式
重写虚拟DOM的实现和Tree-Shaking

3.拥抱TypeScript
Vue3可以更好的支持TypeScript

4.新的特性
1)Composition API(组合API)
·setup配置
·ref与reactive
·watch与watchEffect
·provide与inject
------------------------------------------------------------------
2)新的内置组件
·Fragment
·Teleport
·Suspense
------------------------------------------------------------------
3)其它改变
·新的生命周期钩子
·data选项应该始终被声明为一个函数
·移除keyCode支持作为v-on的修饰符

需要注意

需注意vuex和router的版本需要4.0以上

Vue2 和 Vue3的区别

相互对比

Vue3由于完全由TS进行重写,在应用中对类型判断的定义和使用有很强的表现。同一对象的多个键返回值必须通过定义对应的接口(interface)来进行类型定义。要不然在 ESLint 时都会报错。

vue2 的双向数据绑定是利用 ES5 的一个 API Object.definePropert()对数据进行劫持 结合 发布订阅模式的方式来实现的。Vue3 中使用了 es6 的 ProxyAPI 对数据代理。

Vue3支持碎片(Fragments)

Vue2 与 Vue3 最大的区别: Vue2 使用Options API而 Vue3 使用的Composition API

生命周期钩子变化:

Vue2 ~~~~~~~~~~~ vue3

beforeCreate  -> setup()
created       -> setup()
beforeMount   -> onBeforeMount
mounted       -> onMounted
beforeUpdate  -> onBeforeUpdate
updated       -> onUpdated
beforeDestroy -> onBeforeUnmount
destroyed     -> onUnmounted
activated     -> onActivated
deactivated   -> onDeactivated

声明全局属性对比

// 声明vue2全局属性
Vue.prototype.x = instance
// 使用
this.x

// 声明vue3全局属性
config.globalProperties.x = instance
// 使用
import {
    getCurrentInstance } from 'vue'
const proxy = getCurrentInstance()
proxy.x // x就是全局属性 instance

渲染方式对比

vue2的渲染方法

// vue2通过引入Vue 并使用new Vue方式
import Vue from 'vue'
const vm = new Vue({
   
	renderL h => h(App)
})
vm.$mount('#app')

vue3的渲染方法

// vue3引入的是一个名为createApp的工厂函数
i
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Supernova_gu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值