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

首頁 > 編程 > JavaScript > 正文

Vue自定義指令使用方法詳解

2019-11-19 15:43:26
字體:
來源:轉載
供稿:網友

Vue自定義指令的使用,具體內容如下

1.自定義指令的語法

Vue自定義指令語法如下:

Vue.directive(id, definition)

傳入的兩個參數,id是指指令ID,definition是指定義對象。其中,定義對象可以提供一些鉤子函數

2.鉤子函數

定義對象的鉤子函數如下:

鉤子函數的參數

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

binding: 一個對象,包含以下屬性:
*name: 指令名,不包括 v- 前綴。
*value: 指令的綁定值, 例如: v-my-directive=”1 + 1”,value 的值是 2。
*oldValue: 指令綁定的前一個值,僅在 update 和 componentUpdated 鉤子中可用。無論值是否改變都可用。
*expression: 綁定值的字符串形式。 例如 v-my-directive=”1 + 1” , expression 的值是 “1 + 1”。
*arg: 傳給指令的參數。例如 v-my-directive:foo, arg 的值是 “foo”。
*modifiers: 一個包含修飾符的對象。 例如: v-my-directive.foo.bar, 修飾符對象 modifiers 的值是 { foo: true, bar: true }。

vnode: Vue 編譯生成的虛擬節點。

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

3.例子

Vue自定義指令常見使用例子如下:

Vue.directive('my-directive', { bind: function(){ //做綁定的準備工作 //比如添加事件監聽器,或是其他只需要執行一次的復雜操作 }, inserted: function(){ //... }, update: function(){ //根據獲得的新值執行對應的更新 //對于初始值也會調用一次 }, componentUpdated: function(){ //... }, unbind: function(){ //做清理操作 //比如移除bind時綁定的事件監聽器 }

當指令的定義對象中只使用update時,只需直接傳入函數即可,如下:

Vue.directive('my-directive', function(){ //...})

4.應用

我們往往自定義指令都是定義到全局,方式如下:

第一步:建立一個全局的命令文件例如:directive/directives.js.

第二步:利用Vue.directive()建立一個全局命令,并將它暴露出來,例如一個focus 讓表單自動聚焦.

directives.js

import Vue from 'vue';Vue.directive('focus',{ //當綁定元素插入到DOM中 inserted: function(el){  el.focus(); //元素聚焦  el.setAttribute('placeholder','自定義內容'); }})Vue.directive('***',{ inserted: function(el){  //.... }})export {Vue}

第三步:在main.js(入口JS文件)中將它引入,可以省略文件后綴.

main.js

import directive from './components/global/directives';

這樣任何一個Vue文件只要這樣v-focus(命令名),就可以很方便的用到了

<el-input v-model="input" placeholder="" v-focus></el-input>

如果指令需要傳值或者多個值

<body id="example"> <div id="demo" v-demo="{color : 'white',text : 'hello!'}"></div></body><script> Vue.directive('demo',function(value){  console.info(value.color); //white  console.info(value.text) // hello! }) var demo = new Vue({  el : '#demo' })</script>----------

關于自定義指令異步等其他問題

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 政和县| 沈丘县| 龙南县| 龙川县| 凤山市| 洞头县| 鄄城县| 霍城县| 中江县| 渝北区| 手机| 昭觉县| 丰都县| 木里| 朝阳市| 黄梅县| 南阳市| 呼玛县| 信宜市| 开化县| 泾源县| 上犹县| 伊川县| 陇川县| 甘洛县| 竹溪县| 筠连县| 安图县| 托克托县| 阳江市| 周口市| 嘉黎县| 太湖县| 庆安县| 噶尔县| 漠河县| 新龙县| 前郭尔| 胶南市| 安平县| 浑源县|