最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue.js自定義指令學(xué)習(xí)使用詳解

 更新時(shí)間:2019年10月19日 08:54:49   作者:吳聲子夜歌  
這篇文章主要為大家詳細(xì)介紹了Vue.js自定義指令的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

自定義指令

自定義指令的注冊方法和組件很像,也分全局注冊和局部注冊,比如注冊一個(gè)v-focus指令用于在<input>、<textarea>元素初始化時(shí)自動(dòng)獲得焦點(diǎn),共有兩種寫法:

//全局注冊
Vue.directive('focus',{
 //指令選項(xiàng)
});


//局部注冊
var app = new Vue({
 el: '#app',
 directive: {
 focus: {
 //指令選項(xiàng)
 }
 }
});

自定義指令的選項(xiàng)是由幾個(gè)鉤子函數(shù)組成的,每個(gè)都是可選的。

自定義指令的各個(gè)選項(xiàng)如下:

  • bind: 只調(diào)用一次,指令第一次綁定到元素時(shí)調(diào)用,用這個(gè)鉤子函數(shù)可以定義一個(gè)在綁定時(shí)執(zhí)行一次的初始化動(dòng)作。
  • inserted: 被綁定元素插入父節(jié)點(diǎn)時(shí)調(diào)用(父節(jié)點(diǎn)存在即可調(diào)用,不必在于document中)。
  • update: 被綁定元素所在的模板更新時(shí)調(diào)用,而不論綁定值是否變化。通過比較更新前后的綁定值,可以忽略不必要的模板更新。
  • componentUpdated: 被綁定元素所在模板完成一次更新周期時(shí)調(diào)用。
  • unbind: 只調(diào)用一次,指令與元素解綁時(shí)調(diào)用。

可以根據(jù)需求在不同的鉤子函數(shù)內(nèi)完成邏輯代碼,例如上面的v-focus,我們希望在元素插入父節(jié)點(diǎn)時(shí)就調(diào)用,那用到的最好是inserted。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <script src="https://unpkg.com/vue/dist/vue.js"></script>
 <title>自定義指令</title>
</head>
<body>
 <div id="app">
 <input type="text" v-focus>
 </div>
 <script>
 Vue.directive('focus',{
  inserted: function (el) {
  //聚焦元素
  el.focus();
  }
 });

 var app = new Vue({
  el: '#app'
 });
 </script>
</body>
</html>

每個(gè)鉤子函數(shù)都有幾個(gè)參數(shù)可用,具體如下:

  • el: 指令所綁定的元素,可以用來直接操作DOM
  • binding: 一個(gè)對象,包含以下屬性:

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

  • vnode: Vue編譯生成的虛擬節(jié)點(diǎn)。
  • oldVnode: 上一個(gè)虛擬節(jié)點(diǎn)僅在update和componentUpdated鉤子中可用。

示例:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <script src="https://unpkg.com/vue/dist/vue.js"></script>
 <title>自定義指令</title>
</head>
<body>
 <div id="app">
 <div v-test:msg.a.b="message"></div>
 </div>
 <script>
 Vue.directive('test',{
  bind: function (el, binding, vnode) {
  var keys = [];
  for(var i in vnode){
   keys.push(i);
  }
  el.innerHTML = 
   'name:' + binding.name + '<br/>' +
   'value:' + binding.value + '<br/>' +
   'expression:' + binding.expression + '<br/>' +
   'argument:' + binding.arg + '<br/>' + 
   'modifiers:' + JSON.stringify(binding.modifiers) + '<br/>' + 
   'vnode keys' + keys.join(',');
  }
 });

 var app = new Vue({
  el: '#app',
  data: {
  message: 'some text'
  }
 });
 </script>
</body>
</html>

更多教程點(diǎn)擊《Vue.js前端組件學(xué)習(xí)教程》,歡迎大家學(xué)習(xí)閱讀。

關(guān)于vue.js組件的教程,請大家點(diǎn)擊專題vue.js組件學(xué)習(xí)教程進(jìn)行學(xué)習(xí)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue攔截器原理以及詳細(xì)使用方法

    Vue攔截器原理以及詳細(xì)使用方法

    這篇文章主要給大家介紹了關(guān)于Vue攔截器原理以及詳細(xì)使用的相關(guān)資料,Vue攔截器通常用于在發(fā)送請求或響應(yīng)數(shù)據(jù)時(shí)對其進(jìn)行一些處理或修改,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • VUE數(shù)組根據(jù)索引刪除數(shù)據(jù),頁面同時(shí)更新的實(shí)現(xiàn)方法

    VUE數(shù)組根據(jù)索引刪除數(shù)據(jù),頁面同時(shí)更新的實(shí)現(xiàn)方法

    這篇文章主要介紹了VUE數(shù)組根據(jù)索引刪除數(shù)據(jù),頁面同時(shí)更新的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 在Vue項(xiàng)目中集成和使用Lottie動(dòng)畫庫的步驟詳解

    在Vue項(xiàng)目中集成和使用Lottie動(dòng)畫庫的步驟詳解

    Lottie 是一個(gè)由 Airbnb 開源的動(dòng)畫庫,它允許你在 Web、iOS、Android 等平臺(tái)上使用體積小、高性能的體驗(yàn)豐富的矢量動(dòng)畫,本文將詳細(xì)介紹在 Vue 項(xiàng)目中如何集成和使用 Lottie,文中有詳細(xì)的代碼講解,需要的朋友可以參考下
    2023-11-11
  • vue如何實(shí)現(xiàn)文件上傳及預(yù)覽

    vue如何實(shí)現(xiàn)文件上傳及預(yù)覽

    這篇文章主要介紹了vue如何實(shí)現(xiàn)文件上傳及預(yù)覽問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • vue+uniapp瀑布流布局多種實(shí)現(xiàn)方式示例代碼

    vue+uniapp瀑布流布局多種實(shí)現(xiàn)方式示例代碼

    由于使用uniapp開發(fā)的微信小程序不需要考慮響應(yīng)式,因此瀑布流的實(shí)現(xiàn)相對于pc端更為簡單,下面這篇文章主要給大家介紹了關(guān)于vue+uniapp瀑布流布局多種實(shí)現(xiàn)方式的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • vue動(dòng)態(tài)子組件的兩種實(shí)現(xiàn)方式

    vue動(dòng)態(tài)子組件的兩種實(shí)現(xiàn)方式

    這篇文章主要介紹了vue動(dòng)態(tài)子組件的兩種實(shí)現(xiàn)方式,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • vue和react的區(qū)別及優(yōu)缺點(diǎn)解讀

    vue和react的區(qū)別及優(yōu)缺點(diǎn)解讀

    這篇文章主要介紹了vue和react的區(qū)別及優(yōu)缺點(diǎn)說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • vue項(xiàng)目打包發(fā)布到Nginx后無法訪問后端接口的解決辦法

    vue項(xiàng)目打包發(fā)布到Nginx后無法訪問后端接口的解決辦法

    這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目打包發(fā)布到Nginx后無法訪問后端接口的解決辦法,記錄一下項(xiàng)目需要注意的地方,方便以后快速使用,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • VueJs監(jiān)聽window.resize方法示例

    VueJs監(jiān)聽window.resize方法示例

    本篇文章主要介紹了VueJs監(jiān)聽window.resize方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • vue項(xiàng)目中main.js的用法

    vue項(xiàng)目中main.js的用法

    src/main.js是入口文件,主要作用是初始化vue實(shí)例并使用需要的插件, Vue.use()的作用就是讓它里面被注冊的組件能夠被全局使用,本文通過實(shí)例代碼介紹vue項(xiàng)目中main.js的用法,感興趣的朋友一起看看吧
    2023-10-10

最新評論

商南县| 罗江县| 砚山县| 邵武市| 锡林郭勒盟| 巨鹿县| 通河县| 长沙市| 新昌县| 武定县| 武山县| 临江市| 新蔡县| 沂南县| 青阳县| 辽宁省| 吉安县| 五河县| 建湖县| 泗洪县| 嘉峪关市| 涿鹿县| 任丘市| 松潘县| 忻城县| 商水县| 延寿县| 桐柏县| 濉溪县| 始兴县| 福建省| 红河县| 合作市| 沾化县| 平山县| 炉霍县| 吉木萨尔县| 武川县| 莱阳市| 托克逊县| 宣威市|