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

vue指令以及dom操作詳解

 更新時間:2017年03月04日 14:42:14   作者:小漠007  
本篇文章主要介紹了vue指令以及dom操作詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

“AngularJS 通過被稱為 指令 的新屬性來擴展 HTML。AngularJS 通過內(nèi)置的指令來為應(yīng)用添加功能。AngularJS 允許你自定義指令?!?/p>

這是我最初接觸“指令”這個詞。還記得那時候,ng大行其道的時候,我特別好奇怎么給一個div加一個"ng-app" 就能解決這么多問題。

后來隨著前端工作的深入,我用了jq的data-attr并且學會了jq的插件使用。但,這這并不能讓我把它“指令”聯(lián)想到一塊,后來插件需要給節(jié)點加個標示來顯示某種“狀態(tài)管理” 我用了class  例如:pending,loading-end.

但是感覺和樣式混在一塊總是感覺不自在,后來我直接添加一個自定義標簽 例如:attr-pending,attr-loading-end,通過dom上的自定義標簽來標示某個狀態(tài)是否完成。

在這個時候,發(fā)現(xiàn)"attr-pending,attr-loading-end"與“ng-app,ng-html”什么的非常類似,才恍然大悟,其實“指令”也可以理解為"標識",而具體的邏輯與它無關(guān),它只是一個“標識”罷了。至于,ng-repeat,ng-click  同樣可以理解某個程序在dom上一個“標識” 程序通過它來掛載某個功能。

現(xiàn)在接觸了vue,vue比ng在開發(fā)上來說代碼量很明顯少了很多,“指令”一般開發(fā)人員不需要自己來實現(xiàn)。但是如果是開發(fā)一套ui交互的組件,還是很需要它。

bind: 僅調(diào)用一次,當指令第一次綁定元素的時候。

update: 第一次是緊跟在 bind 之后調(diào)用,獲得的參數(shù)是綁定的初始值;以后每當綁定的值發(fā)生變化就會被調(diào)用,獲得新值與舊值兩個參數(shù)。

unbind:僅調(diào)用一次,當指令解綁元素的時候。

1.指令的注冊

指令跟組件一樣需要注冊才能使用,同樣有兩種方式,一種是全局注冊:

Vue.directive('dirName',function(){
  //定義指令
});

另外一種是局部注冊:
new Vue({
  directives:{
    dirName:{

      //定義指令
    }
  }
});

2.可在指令函數(shù)配置中直接修改DOM[支持數(shù)據(jù)驅(qū)動] input里面的值修改的時候#demo里面的vue也會自動同步

<!DOCTYPE html> 
<html> 
<head lang="en"> 
 <meta charset="UTF-8"> 
 <title></title> 
 <script src="http://cdnjs.cloudflare.com/ajax/libs/vue/0.12.16/vue.min.js"></script> 
</head> 
<body> 
<div> 
  <p>展示vue指令----vue和元素dom操作的完美結(jié)合【拓展】</p> 
  <p>{{msg}}</p> 
  <input type="text" v-model="msg"> 
</div> 
<div id="demo" v-demo-directive="LightSlateGray : msg"></div> 
 
<script> 
 Vue.directive('demoDirective', { 
  bind: function () { 
   this.el.style.color = '#fff' 
   this.el.style.backgroundColor = this.arg 
  }, 
  update: function (value) { 
   this.el.innerHTML = 
     'name - '  + this.name + '<br>' + 
     'raw - '  + this.raw + '<br>' + 
     'expression - ' + this.expression + '<br>' + 
     'argument - ' + this.arg + '<br>' + 
     'value - '  + value 
  } 
 }); 
 var demo = new Vue({ 
  el: 'body', 
  data: { 
   msg: 'hello!' 
  } 
 }) 
 
</script> 
</body> 
</html> 

官網(wǎng)鏈接: http://v1-cn.vuejs.org/guide/custom-directive.html

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

相關(guān)文章

  • vue?this.$refs.xxx報錯undefined問題及解決

    vue?this.$refs.xxx報錯undefined問題及解決

    這篇文章主要介紹了vue?this.$refs.xxx報錯undefined問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue3如何在SCSS中使用v-bind

    Vue3如何在SCSS中使用v-bind

    這篇文章主要介紹了Vue3如何在SCSS中使用v-bind,通過template先創(chuàng)建一個通用的頁面結(jié)構(gòu),本文結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • vue動態(tài)添加行/刪除行的完整代碼示例

    vue動態(tài)添加行/刪除行的完整代碼示例

    在開發(fā)中我們常常會碰到這種業(yè)務(wù),有一些數(shù)據(jù)需要在前端進行刪除,這篇文章主要給大家介紹了關(guān)于vue動態(tài)添加行/刪除行的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • 詳解Vue3.0 前的 TypeScript 最佳入門實踐

    詳解Vue3.0 前的 TypeScript 最佳入門實踐

    這篇文章主要介紹了詳解Vue3.0 前的 TypeScript 最佳入門實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • 在使用vuex的時候出現(xiàn)commit未定義錯誤的解決

    在使用vuex的時候出現(xiàn)commit未定義錯誤的解決

    這篇文章主要介紹了在使用vuex的時候出現(xiàn)commit未定義錯誤的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 關(guān)于怎么在vue項目里寫react詳情

    關(guān)于怎么在vue項目里寫react詳情

    本篇文章是在vue項目里寫tsx的一篇介紹。其實vue里面寫jsx也挺有意思的,接下來小編九給大家詳細介紹吧,感興趣的小伙伴請參考下面的文章內(nèi)容
    2021-09-09
  • 淺談在Vue.js中如何實現(xiàn)時間轉(zhuǎn)換指令

    淺談在Vue.js中如何實現(xiàn)時間轉(zhuǎn)換指令

    這篇文章主要介紹了淺談在Vue.js中如何實現(xiàn)時間轉(zhuǎn)換指令,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • vue3基礎(chǔ)組件開發(fā)detePicker日期選擇組件示例

    vue3基礎(chǔ)組件開發(fā)detePicker日期選擇組件示例

    這篇文章主要為大家介紹了vue3基礎(chǔ)組件開發(fā)-detePicker(日期選擇組件)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • vue插件v-touch的坑及解決(不能上下滑動)

    vue插件v-touch的坑及解決(不能上下滑動)

    這篇文章主要介紹了vue插件v-touch的坑及解決(不能上下滑動),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue實現(xiàn)商城購物車功能

    vue實現(xiàn)商城購物車功能

    這篇文章主要為大家詳細介紹了vue實現(xiàn)商城購物車功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評論