Vue3基础

一、Vue3的历程与特性

Vue3:两年开发,99位贡献者、2600次提交,628次PR。

Vue3支持Vue2的大多数特性。

Vue3的官方网站

1.性能提升
  • 打包大小减少41%
  • 初次渲染快55%,更新快133%
  • 内存使用减少54%
2.Composition API
  • ref和reactive
  • computed和watch
  • 新的生命周期函数
  • 自定义函数-Hooks函数
3.其他新增特性
  • Teleport-瞬移组件的位置
  • Suspense-异步加载组件的新福音
  • 全局API的修改和优化
  • 更多试验性特性

二、为什么要有Vue3

Vue2遇到的难题
  • 随着功能的增长,复杂组件的代码变得难以维护。
  • vue2对于typescript的支持非常有限。

三、Vue3新增API

//mapping vue2 to vue3
beforeCreate -> use setup()
created -> use setup()
beforeMount -> onBeforeMount
mounted -> onMounted
beforeUpdate -> onBeforeUpdate
updated -> onBeforeUnmount
destroyed -> onUnmounted
activated -> onActivated
deactivated -> onDeactivated
errorCaptured -> onErrorCaptured
//added
onRenderTracked
onRenderTriggered

四、组件的理念

在这里插入图片描述

1.Setup函数的使用
//setup为created实例被完全初始化之前执行的函数
setup(props,context){
    return {
  }
}
2.ref,reactive响应式的引用

原理:通过proxy对数据进行封装,当数据变化时,触发模板等内容的更新。

let name = 'abc'
//ref处理基础型数据,通过proxy将'abc'变成proxy({value:'abc'})
let name = ref('abc')
//reactive处理非基础类型的数据
const nameObj = reactive({name:'abc'})
const nameObj = reactive([123])
//readonly只读方法
const nameObj = readonly(nameObj)
//toRefs解决了解构赋值不是响应式数据的问题
//toRefs原理是:proxy({name:"abc"})=>{name:proxy({value:"abc"})}
const {name} = toRefs(nameObj)

五、Vuex

在这里插入图片描述
具体实现步骤:

  • 1.dispatch方法,派发一个action,名字叫做change
this.$store.dispatch('change')
  • 2.感知到change这个action,执行store中actions下面的change方法
  • 3.提交commit一个叫做change的数据改变
this.commit('change')
  • 4.mutation感知到提交的change改变,执行change方法改变数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值