欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue.js內(nèi)部自定義指令與全局自定義指令的實現(xiàn)詳解(利用directive)

 更新時間:2017年07月11日 09:06:46   作者:前端交流ing  
這篇文章主要給大家介紹了關(guān)于vue.js內(nèi)部自定義指令與全局自定義指令的實現(xiàn)方法,vue.js中實現(xiàn)自定義指令的主要是利用directive,directive這個單詞是我們寫自定義指令的關(guān)鍵字,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

大家都知道在Vue中,我們平時數(shù)據(jù)驅(qū)動視圖時候,內(nèi)部自帶的指令有時候解決不了一些需求,這時候,Vue給我們一個很好用的東東來實現(xiàn)自定義指令,這就是directive。下面話不多說了,來一起看看詳細的介紹:

directive

這個單詞是我們寫自定義指令的關(guān)鍵字哦

自定義指令為我們提供了幾個鉤子函數(shù),這時候你一定好奇什么是鉤子函數(shù),說簡單點,就是集中表現(xiàn)狀態(tài)

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

下面我們開始上代碼,讓我們更好的理解自定義指令怎么做

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
 <div id="app">
 
 <div class="ab" v-css="{'color':'red','font-size':'30px'}">
 hello
 </div>
 <input type="text" v-focus>
 </div>
 
</body>
</html>

在html中,我們看到了兩個指令v-cssv-focus

我們自定義指令時候,一定前面要帶上v-

Vue.directive("css",{
 //鉤子函數(shù) ,el就是當(dāng)前元素
 inserted(el,binding){
 //el綁定的元素本身
 //binding就是css指令里面的的對象元素
 let styleobj=binding.value,arr=[];
 for(let key in styleobj){
  arr.push(key+":"+styleobj[key])
  }
 arr=arr.join(";");
 el.style.cssText=arr;
 },
 bind(el,binding) {
 //指令綁定在元素上時候執(zhí)行,只執(zhí)行一次
 }
});
 new Vue({
   el:'#app',
 data:{
  show:true
 },
 directives:{
 focus:{
  inserted(el,binding){
  //el綁定的元素本身
  //binding就是css指令里面的的對象元素
  el.focus();
  }
  }
 }
 });

在js里面我們可以看到

Vue.directive("css",{})

我們在 new Vue外部定義了這樣一段代碼,這就是我們?nèi)肿远x指令的模板方式

  • css是自定義指令的名字
  • {}里面我們寫上鉤子函數(shù)就可以

我們所有的鉤子函數(shù)里面,基本都會有2個參數(shù)el,binding

  • el: 指令所綁定的元素,可以用來直接操作 DOM 。
  • binding 綁定元素本身的一個對象

從上面我們可以看到,binding里面保留綁定指令的name和value,這些很重要

局部自定義指令

directives:{
 name:{

 }
 }

區(qū)別在于,我們寫在new Vue里面,里面api操作和上面的全局自定義指令一樣

下面我們開始看代碼運行結(jié)果

我們可以看到樣式引用上去了

文本框也獲取了焦點

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • vue3中如何使用vue-types

    vue3中如何使用vue-types

    vue-types 在 Vue 3 中的使用主要適用于希望進行更細致的 prop 驗證的場景,尤其是在 JavaScript 項目中,這篇文章給大家介紹vue3中如何使用vue-types,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • vue實現(xiàn)橫向斜切柱狀圖

    vue實現(xiàn)橫向斜切柱狀圖

    這篇文章主要為大家詳細介紹了vue實現(xiàn)橫向斜切柱狀圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • ant design 日期格式化的實現(xiàn)

    ant design 日期格式化的實現(xiàn)

    這篇文章主要介紹了ant design 日期格式化的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • vue中數(shù)據(jù)綁定值(字符串拼接)的幾種實現(xiàn)方法

    vue中數(shù)據(jù)綁定值(字符串拼接)的幾種實現(xiàn)方法

    這篇文章主要介紹了vue中數(shù)據(jù)綁定值(字符串拼接)的幾種實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • VUE中常用的四種高級方法總結(jié)

    VUE中常用的四種高級方法總結(jié)

    開發(fā)vue項目的時候一般都會開發(fā)很多自定義的全局組件,下面這篇文章主要給大家總結(jié)介紹了關(guān)于VUE中常用的四種高級方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • vue元素樣式實現(xiàn)動態(tài)改變方法介紹

    vue元素樣式實現(xiàn)動態(tài)改變方法介紹

    vue通過js動態(tài)修改元素的樣式,如果是固定的幾個樣式,我常用的是綁定元素的calss,給不同的class寫好需要的樣式,js控制是否使用這個class
    2022-09-09
  • Vue ​v-model相關(guān)知識總結(jié)

    Vue ​v-model相關(guān)知識總結(jié)

    這篇文章主要介紹了Vue &#8203;v-model相關(guān)知識總結(jié),幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-01-01
  • vue項目中進行svg組件封裝及配置方法步驟

    vue項目中進行svg組件封裝及配置方法步驟

    本文主要介紹了vue項目中進行svg組件封裝及配置方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 使用Vue實現(xiàn)帶拖動和播放功能的時間軸

    使用Vue實現(xiàn)帶拖動和播放功能的時間軸

    這篇文章主要為大家詳細介紹了如何使用Vue實現(xiàn)帶拖動和播放功能的時間軸,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • 詳解Vue.js中引入圖片路徑的幾種方式

    詳解Vue.js中引入圖片路徑的幾種方式

    這篇文章主要介紹了Vue.js中引入圖片路徑的幾種方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評論