欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

理解Vue2.x和Vue3.x自定義指令用法及鉤子函數(shù)原理

 更新時(shí)間:2021年09月23日 16:31:10   作者:SpringSir  
這篇文章主要介紹了理解Vue2.x和Vue3.x的自定義指令的用法及鉤子函數(shù)原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Vue2.x用法

全局注冊

Vue.directive( 指令名, { 自定義指令生命周期 } )

局部注冊

directives: { 指令名, { 自定義指令生命周期 } }

使用

v-指令名: 屬性名.修飾符=“value值”

鉤子函數(shù)

bind - 自定義指令綁定到 DOM 后調(diào)用. 只調(diào)用一次, 注意: 只是加入進(jìn)了DOM, 但是渲染沒有完成

inserted - 自定義指令所在DOM, 插入到父 DOM 后調(diào)用, 渲染已完成(最最重要)

update - 元素更新, 但子元素尚未更新, 將調(diào)用此鉤子( 自定義指令所在組件更新時(shí)執(zhí)行, 但是不保證更新完成 ) —> 和自定義所在組件有關(guān)

componentUpdated - 組件和子級(jí)更新后執(zhí)行( 自定義指令所在組件更新完成, 且子組件也完成更新 ),

—> 和自定義所在組件有關(guān)

unbind - 解綁(銷毀) .( 自定義指令所在 DOM 銷毀時(shí)執(zhí)行 ). 只調(diào)用一次

鉤子函數(shù)的參數(shù)

注意: 自定義指令中, 都不能直接使用this

1.el: 當(dāng)前指令所在的dom元素。

2.binding: 是一個(gè)對象, 表示當(dāng)前指令上的屬性、修飾符、value值等信息。只有value最重要, 常用

arg:String, 屬性名 。例如 v-my-directive:foo 中,屬性名為 “foo”。

modifiers:Object, 包含所有修飾符的一個(gè)對象。例如:v-my-directive.foo.bar 中,修飾符對象為 { foo: true, bar: true }。

name:String, 指令名,不包括 v- 前綴。

rawName, String, 完整指令名,例如 v-my-directive:foo.bar=“1 + 1” 中, 完整指令名就是 v-my-directive:foo.bar=“1 + 1”

value:Any, 指令綁定的當(dāng)前值,例如:v-my-directive=“1 + 1” 中,綁定值為 2。(最最重要)

expression:String, 解析的哪一個(gè)值、表達(dá)式。例如 v-my-directive=“1 + 1” 中,表達(dá)式為 “1 + 1”。

oldValue:Any, 指令綁定的前一個(gè)值,僅在 update 和 componentUpdated 鉤子中可用。無論值是否改變都可用。

oldArg:Any, 指令屬性名的前一個(gè)值,僅在 update 和 componentUpdated 鉤子中可用。無論值是否改變都可用。

3.vnode:當(dāng)前節(jié)點(diǎn)信息, 可以獲取, 當(dāng)前指令所在組件的實(shí)例 vnode.context - 當(dāng)前指令所在的實(shí)例對象

4.oldVnode:上一個(gè)虛擬節(jié)點(diǎn),僅在 update 和 componentUpdated 鉤子中可用。

Vue3.x用法

用法和 Vue2.x 一樣

全局注冊

Vue.directive( 指令名, { 自定義指令生命周期 } )

局部注冊

directives: { 指令名, { 自定義指令生命周期 } }

使用

v-指令名: 屬性名.修飾符=“value值”

以插件的形式, 進(jìn)行全局注冊

在這里插入圖片描述

鉤子函數(shù)

較 Vue2.x 相比, 鉤子函數(shù)有變化

最終的 API 如下:

const MyDirective = {
  created(el, binding, vnode, prevVnode) {}, // 新增
  beforeMount() {},
  mounted() {},
  beforeUpdate() {}, // 新增
  updated() {},
  beforeUnmount() {}, // 新增
  unmounted() {}
}

created - 自定義指令所在組件, 創(chuàng)建后

beforeMount - 就是Vue2.x中的 bind, 自定義指令綁定到 DOM 后調(diào)用. 只調(diào)用一次, 注意: 只是加入進(jìn)了DOM, 但是渲染沒有完成

mounted - 就是Vue2.x中的 inserted, 自定義指令所在DOM, 插入到父 DOM 后調(diào)用, 渲染已完成(最最重要)

beforeUpdate - 自定義指令所在 DOM, 更新之前調(diào)用

updated - 就是Vue2.x中的 componentUpdated

beforeUnmount - 銷毀前

unmounted - 銷毀后

以上就是理解Vue2.x和Vue3.x自定義指令用法及鉤子函數(shù)原理的詳細(xì)內(nèi)容,更多關(guān)于Vue2.x和Vue3.x的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺析Vue中拆分視圖層代碼的5點(diǎn)建議

    淺析Vue中拆分視圖層代碼的5點(diǎn)建議

    這篇文章主要介紹了Vue中拆分視圖層代碼的5點(diǎn)建議,下面就如何進(jìn)行腳本代碼拆分提供一些思路,有一些可能是很基本的原則,為盡可能完整就放在一起,你并不需要從最開始就采納所有的建議。需要的朋友可以參考下
    2019-08-08
  • 基于Vue如何封裝分頁組件

    基于Vue如何封裝分頁組件

    使用Vue做雙向綁定的時(shí)候,可能經(jīng)常會(huì)用到分頁功能,接下來通過本文給大家分享一個(gè)封裝分頁組件的方法,一起看看吧
    2016-12-12
  • 在Vue中實(shí)現(xiàn)對文件的壓縮和解壓縮功能

    在Vue中實(shí)現(xiàn)對文件的壓縮和解壓縮功能

    在前端開發(fā)中,文件的壓縮和解壓縮是經(jīng)常需要用到的功能,尤其是在需要上傳和下載文件的場景下,文件壓縮可以減小文件大小,加快文件傳輸速度,提高用戶體驗(yàn),本文將介紹在Vue項(xiàng)目中如何進(jìn)行文件的壓縮和解壓縮,需要的朋友可以參考下
    2023-11-11
  • elementui之el-tebs瀏覽器卡死的問題和使用報(bào)錯(cuò)未注冊問題

    elementui之el-tebs瀏覽器卡死的問題和使用報(bào)錯(cuò)未注冊問題

    這篇文章主要介紹了elementui之el-tebs瀏覽器卡死的問題和使用報(bào)錯(cuò)未注冊問題
    2019-07-07
  • vue自定義加載指令最新詳解

    vue自定義加載指令最新詳解

    這篇文章主要介紹了vue自定義加載指令的相關(guān)知識(shí),主要包括創(chuàng)建加載組件,創(chuàng)建指令的方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • vue+drf+第三方滑動(dòng)驗(yàn)證碼接入的實(shí)現(xiàn)

    vue+drf+第三方滑動(dòng)驗(yàn)證碼接入的實(shí)現(xiàn)

    這篇文章要給大家介紹的是vue和drf以及第三方滑動(dòng)驗(yàn)證碼接入的實(shí)現(xiàn),下文小編講詳細(xì)講解該內(nèi)容,感興趣的小伙伴可以和小編一起來學(xué)習(xí)奧
    2021-10-10
  • 關(guān)于vue中如何監(jiān)聽數(shù)組變化

    關(guān)于vue中如何監(jiān)聽數(shù)組變化

    這篇文章主要介紹了關(guān)于vue中如何監(jiān)聽數(shù)組變化,對vue感興趣的同學(xué),必須得參考下
    2021-04-04
  • vue項(xiàng)目使用jszip和file-saver批量打包壓縮圖片或附件方式

    vue項(xiàng)目使用jszip和file-saver批量打包壓縮圖片或附件方式

    這篇文章主要介紹了vue項(xiàng)目使用jszip和file-saver批量打包壓縮圖片或附件方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue使用input封裝上傳文件圖片全局組件的示例代碼

    vue使用input封裝上傳文件圖片全局組件的示例代碼

    實(shí)際開發(fā)過程中,我們經(jīng)常遇見需要上傳文件圖片功能,可以封裝一個(gè)全局組件來調(diào)用,這篇文章給大家介紹vue使用input封裝上傳文件圖片全局組件,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • Vue中如何實(shí)現(xiàn)動(dòng)態(tài)路由的示例代碼

    Vue中如何實(shí)現(xiàn)動(dòng)態(tài)路由的示例代碼

    本文主要介紹了Vue中如何實(shí)現(xiàn)動(dòng)態(tài)路由的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評論