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

vue自定義指令的創(chuàng)建和使用方法實例分析

 更新時間:2018年12月04日 14:49:46   作者:匿名的girl  
這篇文章主要介紹了vue自定義指令的創(chuàng)建和使用方法,結(jié)合完整實例形式分析了vue.js創(chuàng)建及使用自定義指令的相關(guān)操作技巧與注意事項,需要的朋友可以參考下

本文實例講述了vue自定義指令的創(chuàng)建和使用方法。分享給大家供大家參考,具體如下:

一、自定義指令的創(chuàng)建和使用

Vue自帶的指令很多,v-for/v-if/v-else/v-else-if/v-model/v-bind/v-on/v-show/v-html/v-text...
但是這些指令都是比較偏向于工具化,有些時候在實現(xiàn)具體的業(yè)務(wù)邏輯的時候,發(fā)現(xiàn)不夠用,如何來自定義指令.

1、自定義指令

① 創(chuàng)建

new Vue({
  directives:{
    change:{
      bind:function(){},
      update:function(){},
      unbind:function(){}
    }
  }
})

在自定義指令時,在指令對應(yīng)的配置對象中有3個處理函數(shù)指令對應(yīng)的操作

bind
  指令在綁定到元素要執(zhí)行的操作
update
  如果在調(diào)用指令時候,傳了參數(shù),當(dāng)參數(shù)變化時候,就會執(zhí)行update所指定的方法
unbind
  解綁要執(zhí)行的操作

② 使用自定義指令

directives:{
  hello:{
    bind:function(){},
    update:function(){},
    unbind:function(){}
  }
}

使用:

v-hello

注意事項:

建議在給指令的命名采用小駝峰式的命名方式,比如changeBackgroundColor,在使用的時候,采用烤串式寫法 v-change-background-color

(方法:參數(shù),返回值)

bind方法以及update方法 都是有參數(shù)的,
一個是el,對應(yīng)的是調(diào)用指令的元素
一個bindings,是一個對象:name/rawName/value/oldValue...

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <script src="https://cdn.bootcss.com/vue/2.0.1/vue.min.js"></script>
  <title>m.fzitv.net vue自定義指令</title>
</head>
<body>
<div id="container">
  <p>{{msg}}</p>
  <!-- 準(zhǔn)備實現(xiàn)需求:
  在h1標(biāo)簽上面,加上一個按鈕,當(dāng)點擊按鈕時候,對count實現(xiàn)一次
  自增操作,當(dāng)count等于5的時候,在控制臺輸出‘it is a test'
  -->
  <button @click="handleClick">clickMe</button>
  <h1
      v-if="count < 6"
      v-change="count">it is a custom directive</h1>
</div>
<script>
  //directive
  new Vue({
    el: '#container',
    data: {
      msg: 'Hello Vue',
      count:0
    },
    methods:{
      handleClick: function () {
        //按鈕單擊,count自增
        this.count++;
      }
    },
    directives:{
      change:{
        bind: function (el,bindings) {
          console.log('指令已經(jīng)綁定到元素了');
          console.log(el);
          console.log(bindings);
          //準(zhǔn)備將傳遞來的參數(shù)
          // 顯示在調(diào)用該指令的元素的innerHTML
          el.innerHTML = bindings.value;
        },
        update: function (el,bindings) {
          console.log('指令的數(shù)據(jù)有所變化');
          console.log(el);
          console.log(bindings);
          el.innerHTML = bindings.value;
          if(bindings.value == 5)
          {
            console.log(' it is a test');
          }
        },
        unbind: function () {
          console.log('解除綁定了');
        }
      }
    }
  })
</script>
</body>
</html>

使用在線HTML/CSS/JavaScript代碼運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun測試,可得到如下運(yùn)行效果:

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <script src="https://cdn.bootcss.com/vue/2.0.1/vue.min.js"></script>
  <title>m.fzitv.net vue自定義指令</title>
</head>
<body>
<div id="container">
  <p>{{msg}}</p>
  <h1 v-change-background-color="myBgColor">
    it is a header1
  </h1>
</div>
<script>
  new Vue({
    el: '#container',
    data: {
      msg: 'Hello Vue',
      myBgColor:'#ff0000'
    },
    directives:{
      changeBackgroundColor:{
        bind: function (el,bindings) {
          console.log('in bind ');
          console.log(bindings.value);
          el.style.backgroundColor = bindings.value;
        }
      }
    }
  })
</script>
</body>
</html>

使用在線HTML/CSS/JavaScript代碼運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun測試,可得到如下運(yùn)行效果:

<h4 v-change-background-color="'red'">背景色</h4>這樣也是可以的,但是寫死了,不好

希望本文所述對大家vue.js程序設(shè)計有所幫助。

相關(guān)文章

  • 解決vant-UI庫修改樣式無效的問題

    解決vant-UI庫修改樣式無效的問題

    這篇文章主要介紹了解決vant-UI庫修改樣式無效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Vue基礎(chǔ)配置講解

    Vue基礎(chǔ)配置講解

    在本篇文章里小編給大家整理的是關(guān)于Vue基礎(chǔ)配置講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2019-11-11
  • 一文弄懂Vite 配置文件

    一文弄懂Vite 配置文件

    Vite?構(gòu)建環(huán)境分為開發(fā)環(huán)境和生產(chǎn)環(huán)境,不同環(huán)境會有不同的構(gòu)建策略,本文就來介紹下Vite 配置文件,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • el-form 多層級表單的實現(xiàn)示例

    el-form 多層級表單的實現(xiàn)示例

    這篇文章主要介紹了el-form 多層級表單的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Vue中Element的table多選表格如何實現(xiàn)單選

    Vue中Element的table多選表格如何實現(xiàn)單選

    這篇文章主要介紹了Vue中Element的table多選表格如何實現(xiàn)單選,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue3+TypeScript實現(xiàn)Docx/Excel預(yù)覽組件

    Vue3+TypeScript實現(xiàn)Docx/Excel預(yù)覽組件

    這篇文章主要為大家詳細(xì)介紹了如何使用Vue3+TypeScript實現(xiàn)Docx/Excel預(yù)覽組件,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考下
    2024-04-04
  • Vue2利用Axios發(fā)起請求的詳細(xì)過程記錄

    Vue2利用Axios發(fā)起請求的詳細(xì)過程記錄

    有很多時候你在構(gòu)建應(yīng)用時需要訪問一個API并展示其數(shù)據(jù),做這件事的方法有好幾種,而使用基于promise的HTTP客戶端axios則是其中非常流行的一種,這篇文章主要給大家介紹了關(guān)于Vue2利用Axios發(fā)起請求的詳細(xì)過程,需要的朋友可以參考下
    2021-12-12
  • Vue?(Vuex)中?store?基本用法

    Vue?(Vuex)中?store?基本用法

    Vuex?是一個專為?Vue.js?應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測的方式發(fā)生變化,這篇文章主要介紹了Vue?中?store?基本用法,需要的朋友可以參考下
    2023-01-01
  • 基于vue2.0+vuex+localStorage開發(fā)的本地記事本示例

    基于vue2.0+vuex+localStorage開發(fā)的本地記事本示例

    這篇文章主要介紹了基于vue2.0+vuex+localStorage開發(fā)的本地記事本示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • vue前端開發(fā)層次嵌套組件的通信詳解

    vue前端開發(fā)層次嵌套組件的通信詳解

    vue通過provide & inject兩個關(guān)鍵字完成父組件向子孫組件直接傳值,很像子類能夠使用父類的屬性一樣方便。provide & inject一般用于多層之間的傳值,兩層之間還是使用props進(jìn)行
    2021-10-10

最新評論

高淳县| 新津县| 洞头县| 攀枝花市| 界首市| 隆回县| 吉安县| 图木舒克市| 新龙县| 健康| 武川县| 新宁县| 田林县| 临清市| 诏安县| 浪卡子县| 博客| 岳普湖县| 烟台市| 曲阜市| 滨海县| 阳谷县| 红桥区| 尉氏县| 禄丰县| 湟源县| 团风县| 黄冈市| 兰州市| 涪陵区| 靖江市| 政和县| 阳山县| 广南县| 竹溪县| 九龙县| 诸城市| 石河子市| 罗甸县| 扬州市| 赫章县|