最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳解Vue選項(xiàng)式?API?的生命周期選項(xiàng)和組合式API

 更新時(shí)間:2023年03月26日 11:14:17   作者:是洋柿子啊  
這篇文章主要為大家介紹了Vue選項(xiàng)式?API?的生命周期選項(xiàng)和組合式API變化詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Vue2、Vue3 生命周期的變化

正好在看Vue的官方文檔,也正好比對(duì)一下,做一下筆記

選項(xiàng)式 API 的生命周期選項(xiàng)的變化

Vue2.xVue3
beforeCreatebeforeCreate
createdcreated
beforeMountbeforeMount
mountedmounted
beforeUpdatebeforeUpdate
updatedupdated
beforeDestroybeforeUnmount
destroyedunmounted
新增
errorCaptured
renderTracked
renderTriggered

這里我們會(huì)發(fā)現(xiàn)Vue3對(duì)Vue2的生命周期鉤子似乎沒(méi)有做大的調(diào)整

  • 修改
    • destroyed 生命周期選項(xiàng)被重命名為 unmounted
    • beforeDestroy 生命周期選項(xiàng)被重命名為 beforeUnmount
  • 新增
    • errorCaptured:在捕獲一個(gè)來(lái)自后代組件的錯(cuò)誤時(shí)被調(diào)用。
    • renderTracked:跟蹤虛擬 DOM 重新渲染時(shí)調(diào)用。
    • renderTriggered:當(dāng)虛擬 DOM 重新渲染被觸發(fā)時(shí)調(diào)用。

小知識(shí)

所有生命周期鉤子的 this 上下文將自動(dòng)綁定至當(dāng)前的實(shí)例中,所以我們可以在 鉤子函數(shù)中通過(guò)this輕松訪(fǎng)問(wèn)到 data、computed 和 methods。

那么我有個(gè)大膽的想法!就是用箭頭函數(shù)進(jìn)行定義生命周期鉤子函數(shù),可以如期的訪(fǎng)問(wèn)到我們想要的實(shí)例嗎?

測(cè)試:

const app = Vue.createApp({
  data() {
    return {
      cart: 0
   }
},
mounted: () => { console.log(this.cart) },
  methods: {
    addToCart() {
      this.cart += 1
    }
  }
})

app.mount("#app");

不出所望的undefined了,我們打印一下this

指向的上下文是window并不是我們的Vue實(shí)例。

至于為什么會(huì)這樣,我們可以很簡(jiǎn)單的從箭頭函數(shù)的特性來(lái)進(jìn)行一波簡(jiǎn)單的解釋?zhuān)?br />我們?cè)诙x箭頭函數(shù)的時(shí)候,定義初就綁定了父級(jí)上下文,因?yàn)榧^函數(shù)綁定了父級(jí)上下文,所以 this 不會(huì)指向預(yù)期的組件實(shí)例,并且this.datathis.addToCart 都將會(huì)是 undefined。

組合式 生命周期選項(xiàng) API

選項(xiàng)式 API 的生命周期選項(xiàng)和組合式 API 之間是有映射關(guān)系的, 整體來(lái)看,變化不大,只是名字大部分上是on${選項(xiàng)式 API 的生命周期選項(xiàng)}

  • beforeCreate -> 使用 setup()
  • created -> 使用 setup()
  • beforeMount -> onBeforeMount
  • mounted -> onMounted
  • beforeUpdate -> onBeforeUpdate
  • updated -> onUpdated
  • beforeUnmount -> onBeforeUnmount
  • unmounted -> onUnmounted
  • errorCaptured -> onErrorCaptured
  • renderTracked -> onRenderTracked
  • renderTriggered -> onRenderTriggered
  • activated -> onActivated
  • deactivated -> onDeactivated

參考:組合式 API 生命周期鉤子

使用:

export default {
  setup() {
    // mounted
    onMounted(() => {
      console.log('Component is mounted!')
    })
  }
}

VNode 生命周期事件

在查閱 Vue 的生命周期的時(shí)候,發(fā)現(xiàn)了這個(gè),說(shuō)實(shí)話(huà)我在平常業(yè)務(wù)開(kāi)發(fā)中還真沒(méi)怎么用過(guò),不過(guò)秉承著寧可多學(xué)些也不錯(cuò)過(guò)的就記錄一下吧!

Vue2x

在Vue2版本中,如果我們想要監(jiān)聽(tīng)組件內(nèi)的生命周期的階段。我們可以通過(guò) hook:${組件生命周期鉤子名稱(chēng)}來(lái)進(jìn)行組件內(nèi)部的事件監(jiān)聽(tīng)。

<template>
  <child-component @hook:updated="onUpdated">
</template>

Vue3x

在 Vue 3 中,如果我們想要監(jiān)聽(tīng)組件內(nèi)的生命周期的階段。我們可以通過(guò) vnode-${組件生命周期鉤子名稱(chēng)}來(lái)進(jìn)行組件內(nèi)部的事件監(jiān)聽(tīng)。額外地,這些事件現(xiàn)在也可用于 HTML 元素,和在組件上的用法一樣。

<template>
  <child-component @vnode-updated="onUpdated">
</template>

或者用駝峰命名法

<template>
  <child-component @vnodeUpdated="onUpdated">
</template>

以上就是一文詳解Vue選項(xiàng)式 API 的生命周期選項(xiàng)和組合式API的詳細(xì)內(nèi)容,更多關(guān)于Vue選項(xiàng)組合API生命周期的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue 父組件給子組件傳值子組件給父組件傳值的實(shí)例代碼

    vue 父組件給子組件傳值子組件給父組件傳值的實(shí)例代碼

    這篇文章主要介紹了vue 父組件給子組件傳值,子組件給父組件傳值,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • Vue組件與Vue cli腳手架安裝方法超詳細(xì)講解

    Vue組件與Vue cli腳手架安裝方法超詳細(xì)講解

    CLI是一個(gè)全局安裝的npm包,提供了終端里的vue命令。它可以通過(guò)vue create快速搭建一個(gè)新項(xiàng)目,或者直接通過(guò)vue serve構(gòu)建新想法的原型。你也可以通過(guò)vue ui通過(guò)一套圖形化界面管理你的所有項(xiàng)目
    2022-11-11
  • Vue 2.0雙向綁定原理的實(shí)現(xiàn)方法

    Vue 2.0雙向綁定原理的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了Vue 2.0雙向綁定原理的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 詳解如何使用vue實(shí)現(xiàn)可視化界面設(shè)計(jì)

    詳解如何使用vue實(shí)現(xiàn)可視化界面設(shè)計(jì)

    Vue是一款流行的前端開(kāi)發(fā)框架,它的響應(yīng)式數(shù)據(jù)綁定和組件化特性使得它成為了可視化界面設(shè)計(jì)的一個(gè)理想選擇,本文將介紹如何使用Vue實(shí)現(xiàn)可視化界面設(shè)計(jì),并且演示一個(gè)基于Vue的可視化界面設(shè)計(jì)案例,需要的朋友可以參考下
    2023-12-12
  • vue中如何使用echarts和echarts-gl實(shí)現(xiàn)3D餅圖環(huán)形餅圖

    vue中如何使用echarts和echarts-gl實(shí)現(xiàn)3D餅圖環(huán)形餅圖

    現(xiàn)在vue是很多公司前端的主流框架,我目前所在公司接觸的項(xiàng)目也都是使用vue來(lái)實(shí)現(xiàn)的,很少有完全使用原生的JavaScript來(lái)寫(xiě)項(xiàng)目的了,下面這篇文章主要給大家介紹了關(guān)于vue中如何使用echarts和echarts-gl實(shí)現(xiàn)3D餅圖環(huán)形餅圖的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Vue實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)文字顯示懸浮框效果的示例代碼

    Vue實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)文字顯示懸浮框效果的示例代碼

    這篇文章主要介紹了Vue實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)文字顯示懸浮框效果,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Vue3編程流暢技巧自定義Hooks

    Vue3編程流暢技巧自定義Hooks

    這篇文章主要為大家介紹了Vue3必學(xué)技巧-自定義Hooks-讓寫(xiě)Vue3更暢快示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Vue Element 分組+多選+可搜索Select選擇器實(shí)現(xiàn)示例

    Vue Element 分組+多選+可搜索Select選擇器實(shí)現(xiàn)示例

    這篇文章主要介紹了Vue Element 分組+多選+可搜索Select選擇器實(shí)現(xiàn)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • vue實(shí)現(xiàn)添加標(biāo)簽demo示例代碼

    vue實(shí)現(xiàn)添加標(biāo)簽demo示例代碼

    本篇文章主要介紹了vue實(shí)現(xiàn)添加標(biāo)簽demo示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • Vue 源碼分析之 Observer實(shí)現(xiàn)過(guò)程

    Vue 源碼分析之 Observer實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了 Vue 源碼分析之 Observer實(shí)現(xiàn)過(guò)程,Observer 最主要的作用就是實(shí)現(xiàn)了touch -Data(getter) - Collect as Dependency這段過(guò)程,也就是依賴(lài)收集的過(guò)程,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-03-03

最新評(píng)論

咸阳市| 阿荣旗| 澄城县| 泉州市| 灵武市| 锡林郭勒盟| 平阳县| 洪江市| 靖江市| 乌审旗| 象山县| 喀喇沁旗| 余姚市| 甘孜| 旅游| 福海县| 汉阴县| 边坝县| 英德市| 化州市| 胶南市| 启东市| 碌曲县| 甘泉县| 友谊县| 高陵县| 威海市| 顺义区| 洞口县| 五台县| 双峰县| 贺兰县| 西乌珠穆沁旗| 郑州市| 朝阳县| 南充市| 庆安县| 井研县| 河津市| 汝城县| 河北区|