我的Vuejs進階之旅(六):指令

      網友投稿 621 2025-04-01

      本章節主要簡要介紹Vue內置指令、自定義指令、常見問題及解決方法等內容。

      5.1?內置指令

      Vue.js最為常用的指令為數據綁定指令:v-bind和事件綁定指令:v-bind

      Vue.js為兩個最為常用的指令提供了特別的縮寫:

      v-bind縮寫

      測試 測試

      v-bind縮寫

      修改 修改

      5.2?自定義指令

      除了核心功能默認內置的指令?(v-model?和?v-show),Vue 也允許注冊自定義指令。有的情況下,需要對普通 DOM 元素進行底層操作,這時候就會用到自定義指令。

      如何聲明自定義指令?

      就像vue中有全局組件和局部組件一樣,自定義組件也分全局自定義指令和局部自定義指令。

      import './directive/demoDirective.js'

      對于全局自定義指令的創建,我們需要使用 Vue.directive接口

      Vue.directive('demo', Opt)

      在單獨JS文件demoDirective.js中定義好以上自定義指令后,然后在main.js入口文件中加以引入即可,

      接下來即可在需要應用的組件中應用,應用示例如下所示:

      對于局部組件,我們需要在組件的鉤子函數directives中進行聲明

      Directives: { Demo:Opt }

      Vue中的指令可以簡寫,上面Opt是一個對象,包含了5個鉤子函數,我們可以根據需要只寫其中幾個函數。如果你想在 bind 和 update 時觸發相同行為,而不關心其它的鉤子,那么你可以將Opt改為一個函數。

      let Opt = function(el,binding,vnode){ }

      我的Vuejs進階之旅(六):指令

      下面定義了一個v-test指令綁定數據name。

      自定義指令提供的鉤子函數 (均為可選)如下:

      inserted:被綁定元素插入父節點時調用 (僅保證父節點存在,但不一定已被插入文檔中)。

      bind:只調用一次,指令第一次綁定到元素時調用。在這里可以進行一次性的初始化設置。

      update:所在組件的 VNode 更新時調用,但是可能發生在其子 VNode

      更新之前。指令的值可能發生了改變,也可能沒有。但是你可以通過比較更新前后的值來忽略不必要的模板更新 (詳細的鉤子函數參數見下)。

      componentUpdated:指令所在組件的 VNode 及其子 VNode 全部更新后調用。

      unbind:只調用一次,指令與元素解綁時調用。

      指令鉤子函數會被傳入以下參數:

      el:指令所綁定的元素,可以用來直接操作 DOM 。

      binding:一個對象,包含以下屬性:

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

      value:指令的綁定值,例如:v-my-directive=“1 + 1”?中,綁定值為 2。

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

      expression:字符串形式的指令表達式。例如?v-my-directive=“1 + 1”?中,表達式為 “1 + 1”。

      arg:傳給指令的參數,可選。例如?v-my-directive:foo?中,參數為 “foo”。

      modifiers:一個包含修飾符的對象。例如:v-my-directive.foo.bar?中,修飾符對象為?{ foo: true, bar: true }。

      vnode: Vue編譯生成的虛擬節點。移步 VNode API 來了解更多詳情。

      oldVnode:上一個虛擬節點,僅在 update 和 componentUpdated 鉤子中可用。

      5.3?常見問題解析

      Vue

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:FIXED函數
      下一篇:【軟通鯤鵬云最佳實踐34】pm2-3.5.1 鯤鵬云服務器安裝實踐
      相關文章
      亚洲精品私拍国产福利在线| 亚洲短视频男人的影院| 亚洲视频在线免费看| 国产l精品国产亚洲区在线观看| 亚洲中文字幕成人在线| 午夜亚洲国产精品福利| 亚洲欧美在线x视频| 国产AV无码专区亚洲AV蜜芽| 亚洲AV无码一区二区三区牲色 | 亚洲日韩乱码中文无码蜜桃臀网站| 国产成人精品久久亚洲高清不卡| 亚洲av无码专区国产不乱码| 亚洲精品无码永久在线观看男男 | 亚洲日本va在线观看| 涩涩色中文综合亚洲| 国产成人精品日本亚洲专一区| 亚洲专区中文字幕| 亚洲日本人成中文字幕| 国产亚洲精品成人AA片| 亚洲日韩av无码中文| 亚洲精品久久无码| jzzijzzij在线观看亚洲熟妇| 国产亚洲视频在线| 亚洲精品无码专区久久同性男| 精品亚洲成α人无码成α在线观看 | 久久久久亚洲av无码专区| 亚洲精品免费在线| 亚洲男人的天堂久久精品| 亚洲欧美日韩国产精品一区| 豆国产96在线|亚洲| 亚洲精品无码99在线观看 | 国产亚洲精品精品国产亚洲综合| 亚洲中文字幕久久精品无码APP| 国产亚洲成av片在线观看| 久久99亚洲网美利坚合众国| 亚洲人色大成年网站在线观看| 亚洲成人免费电影| 一区二区亚洲精品精华液| 亚洲已满18点击进入在线观看| 蜜芽亚洲av无码一区二区三区| 亚洲乱亚洲乱少妇无码|