vue3相关

vue3的生命周期

vue2 vue3 差异比较
beforeCreate setup setup() :开始创建组件之前,在beforeCreate和created之前执行。创建的是data和method
created setup
beforeMount onBeforeMount 组件挂载到节点上之前执行的函数
mounted onMounted 组件挂载完成后执行的函数
beforeUpdate onBeforeUpdate 组件更新之前执行的函数
updated onUpdated 组件更新完成之后执行的函数
beforeDestroy onBeforeUnmount 卸载之前执行的函数,相比改名了
destroyed onUnmounted 卸载之后执行的函数
activated onActivated 被包含在中的组件,会多出两个生命周期钩子函数。被激活时执行
deactivated onDeactivated 比如从 A 组件,切换到 B 组件,A 组件消失时执行
errorCaptured onErrorCaptured 当捕获一个来自子孙组件的异常时激活钩子函数
onRenderTracked vue3新增的周期用于开发调试使用的
onRenderTriggered vue3新增的周期用于开发调试使用的
  • vue2的beforeCreatecreate变成了setup
  • 除了setup外大部分还是vue2的名字,只是在前面加了个on
  • vue2的destroyedbeforDestroy变成了onUnmounted(尤大的解释是Unmounted更加语义化,卸载的意思比vue2的销毁更加形象)
  • 关于调试函数,目前官方文档也没有过多讲解

vue3的watch的变化和watchEffect()

在vue2里面采用的是一个对象的形式,然后在里面去监听不同的值,在vue3已经发生了改变:

import {watch} from 'vue'

watch(a, (newVal, oldVal) => {
    console.log(newVal, '===', oldVal)
})

vue3的watch基础用法已经改变,想要使用watch,必须先引入,vue3现在的语法类似各类ui框架一样要按需引入</br>
这里的wacth函数接收两个参数,第一个参数是我们要检测的值,第二个是回调函数,和以前一样拥有新旧两个值</br>
同时,vue3的watch支持同时监听多个值,以数组的形式:

import {watch} from 'vue'

watch([a, b], ([newValA, newValB], [oldValA, oldValB]) => {
    console.log(newValA, newValB, '===', oldValA, oldValB)
})

监听多个值,对应的回调函数的形参里的新旧值就也是多个,这样的监听会让我们的业务做某些对比判断的时候更加的灵活</br>
watchEffect是vue3提出的一个新的API:

import {watchEffect} from 'vue'
watchEffect(() => console.log(name))

它是一个方法,接收一个回调函数,他不需要去指定监听谁,它会去自动收集依赖,只要在回调函数中使用了的属性,在发生变化的时候,都会去触发这个回调函数,这样就会变得非常简单,在业务中,我们不必去特意的监听某某属性,而是直接把他写在其回调函数中,就可以自动帮我们收集依赖

其它

  • Composition API

    • Compositon API不是一个api,而是很多个API组合的一套API,我们统称为这名字,vue2中,我们会在methods,computed,watch,data中等等定义属性和方法,共同处理页面逻辑,我们称这种方式为Options API,这样的方式在项目过大的时候我们发现,一个methods定义数十个方法的时候,还得准备知道每个方法的this,作用,干嘛的就会变得非常麻烦,而Composition API就是解决这个问题的
    • vue3 Composition API中,我们的代码是根据逻辑功能来组织的,一个功能所定义的所有api会放在一起(更加的高内聚,低耦合),这样做,即使项目很大,功能很多,我们都能快速的定位到这个功能所用到的所有API
  • createApp()
    vue2中是使用new Vue的方式,vue3使用createApp的方式,本质是没有太大的区别,但是呢,在之前我们每次注册一些全局的组建,mixin,plugins,prototype等,都会是这样的方式,Vue.mixin(...xxx)这样的方式,会造成,全局只有一个app的实例,这样就会造成实例污染,而在vue3中,createApp会返回一个全新的app,可以很好的避免这个问题

  • Vue3如何注册全局组件

    app.component('componentName', component)
  • Vue3如何注册自定义指令
/** v-snine */
app.directive('snine', {
  inserted: function (el) {
    el.snine()
  },
})
  • Vue3如何全局混入
const app = createApp(App)
app.mixin({
  beforeCreate() {
    console.log('我是全局mixin')
  },
})
  • Vue3如何全局挂载属性和方法
const app = createApp(App)
    
// 全局ctx(this) 上挂载 $axios 需要挂载在globalProperties
app.config.globalProperties.$axios = axios
  • Vue3已经移除了filter

  • Vue2和Vue3的生命周期可以混用

  • Vue3中可以使用vue2的写法

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,192评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,858评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,517评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,148评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,162评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,905评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,537评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,439评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,956评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,083评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,218评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,899评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,565评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,093评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,201评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,539评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,215评论 2 358

推荐阅读更多精彩内容