国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Vue.directive使用注意(小結)

2024-05-06 15:30:54
字體:
來源:轉載
供稿:網友

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

    el:指令所綁定的元素,可以用來直接操作 DOM 。 binding:一個對象,包含以下屬性:vnode:Vue 編譯生成的虛擬節點。移步 VNode API 來了解更多詳情。
      ◦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 }。
    oldVnode:上一個虛擬節點,僅在 update 和 componentUpdated 鉤子中可用。

具體事例

clickoutside.js

用途:clickoutside.js主要用于解決點解元素外的地方時執行函數  主要應用的常見有彈出層點擊遮罩層是隱藏窗口,或者一些彈出層點擊其他地方要消失的場景

v-clickoutside具體是怎么實現的

答:主要是通過在bind中定義函數 通過判斷是否包含元素,執行binding.value函數

export default { /*  @param el 指令所綁定的元素  @param binding {Object}   @param vnode vue編譯生成的虛擬節點  */ bind (el, binding, vnode) {  const documentHandler = function(e) {     if(!vnode.context || el.contains(e.target)) {    return false;   }   if (binding.expression) {    binding.value(e)   }  }    document.addEventListener('click', documentHandler) }, update (el, binding) {  }, unbind(el) {  document.removeEventListener('click', documentHandler); }}

Vue.directive使用注意

首先,Vue.directive要在實例初始化之前,不然會報錯,還有,定義的指令不支持駝峰式寫法,也會報下面同樣的錯,雖然在源碼中沒有找到在哪里統一處理大小寫,但是在有關directive的方法中捕捉到的指令命名統一變為小寫,所以,還是用'-'或者'_'分割吧。

vue.js:491 [Vue warn]: Failed to resolve directive: xxx

然后,其定義方式有兩種,一種是Vue.directive('xxx', function(el, bind, vNode){}),其中el為dom,vNode為vue的虛擬dom,bind為一較復雜對象,詳情可見Vue-directive鉤子函數中的參數的參數,還有一種,為

Vue.directive('my-directive', { bind: function () {}, inserted: function () {}, update: function () {}, componentUpdated: function () {}, unbind: function () {}})

參數代表的含義,參見鉤子函數描述

最后,要使用自定義的指令,只需在對用的元素中,加上'v-'的前綴形成類似于內部指令'v-if','v-text'的形式。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 化州市| 丹江口市| 永济市| 明溪县| 梨树县| 惠东县| 牙克石市| 喀喇| 保康县| 雅江县| 柘城县| 玛曲县| 亳州市| 汽车| 惠东县| 余庆县| 利辛县| 登封市| 佛学| 永丰县| 平江县| 平江县| 青冈县| 长子县| 岱山县| 林甸县| 蒙阴县| 洛宁县| 疏附县| 康保县| 桦甸市| 彰化市| 正定县| 明溪县| 永靖县| 沂水县| 泰州市| 广西| 沙湾县| 吴忠市| 齐齐哈尔市|