91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue自定義指令directives及其常用鉤子函數的示例分析

發布時間:2022-01-24 11:15:38 來源:億速云 閱讀:244 作者:柒染 欄目:開發技術

這篇文章主要為大家分析了vue自定義指令directives及其常用鉤子函數的示例分析的相關知識點,內容詳細易懂,操作細節合理,具有一定參考價值。如果感興趣的話,不妨跟著跟隨小編一起來看看,下面跟著小編一起深入學習“vue自定義指令directives及其常用鉤子函數的示例分析”的知識吧。

自定義指令directives及常用鉤子函數

說明

除了核心功能默認內置的指令 (v-model 和 v-show),Vue 也允許注冊自定義指令

使用的地方:有的情況下,你仍然需要對普通 DOM 元素進行底層操作,這時候就會用到自定義指令

鉤子函數

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

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

  • update: 所在組件的 VNode 更新時調用,但是可能發生在其子 VNode 更新之前。指令的值可能發生了改變,也可能沒有。但是你可以通過比較更新前后的值來忽略不必要的模板更新。

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

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

vue 全局定義

使用:<span v-指令名稱> welcome </span> 也可以 v-指令名稱="傳遞的參數"

定義:Vue.directive(指令名稱,{指令鉤子:功能函數})

<div id="root">
        <span v-red>welcome</span>
    </div>
    <script type="text/javascript">
        Vue.directive('red',{       //定義 ???
            inserted:function(el){  //鉤子函數 ???
                el.style.background = 'red';
            }
        });
        var vm = new Vue({
               el:"#root"
            data:{            
            },
        })
    </script>

局部定義(vue-cli)

使用:<div v-指令名稱='傳遞的參數'></div> // 傳遞參數可以根據功能需求進行操作

定義:directives{指令名稱:{鉤子函數:功能函數}}

<template>
  <div class="hello">
      <div v-test='name'></div>
  </div>
</template>
<script>

export default {
  data () {
    return {
     name:'userName',
    }
  },
  directives:{     //自定義指令 ???
      test:{
        inserted: function (el,binding) { //e為綁定元素,可以對其進行dom操作
           console.log(binding)          //一個對象,包含很多屬性屬性(在下面)
        },
        bind: function (el, binding, vnode) {
            el.innerHTML =binding.value
          }
      }
  },
  methods:{
     ... ...
  }
}
</script>

鉤子函數里面的參數

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

  • binding:一個對象,包含以下 property:

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 編譯生成的虛擬節點。

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

vue 自定義指令 directives選項

directives選項中定義 指令

使用時添加v-前綴

全局注冊

app.directive('xxx',{})

支持動態指令參數

v-xx:[abc]='xxx'

指令函數能夠接受所有合法的 JavaScript 表達式。

如果方法只需要在 mounted 和 updated 的時間鉤子觸發

可以簡寫為單純的回調函數

參數說明

第一個參數 為綁定的元素

第二個參數 為傳遞的對象

  • .arg 綁定的參數

  • .value 等號后對應的值

在應用到組件上時,和非 prop 的 attribute不同,指令不會通過 v-bind="$attrs" 被傳入另一個元素。

當被應用在一個多根節點的組件上時,指令會被忽略,并且會拋出一個警告。

關于“vue自定義指令directives及其常用鉤子函數的示例分析”就介紹到這了,更多相關內容可以搜索億速云以前的文章,希望能夠幫助大家答疑解惑,請多多支持億速云網站!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辽中县| 陇西县| 阜南县| 安乡县| 大荔县| 宣威市| 南漳县| 凌海市| 洛扎县| 资中县| 读书| 洛宁县| 本溪| 岳池县| 中西区| 鄂伦春自治旗| 古浪县| 林西县| 长乐市| 新化县| 施甸县| 永登县| 扎赉特旗| 铁岭市| 北辰区| 苏尼特右旗| 无为县| 涟水县| 萝北县| 喀喇沁旗| 盘山县| 合阳县| 巴塘县| 金山区| 太保市| 资溪县| 疏勒县| 珲春市| 拉萨市| 大丰市| 宜春市|