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

首頁 > 編程 > JavaScript > 正文

vue指令以及dom操作詳解

2019-11-19 17:19:06
字體:
供稿:網(wǎng)友

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

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

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

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

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

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

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

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

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

1.指令的注冊

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

Vue.directive('dirName',function(){  //定義指令});另外一種是局部注冊:new Vue({  directives:{    dirName:{      //定義指令    }  }});

2.可在指令函數(shù)配置中直接修改DOM[支持?jǐn)?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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 辽阳市| 乌拉特前旗| 桂阳县| 中西区| 山阴县| 余干县| 呼图壁县| 栾川县| 托里县| 屏边| 乃东县| 巴林右旗| 昆山市| 安国市| 张家口市| 徐水县| 醴陵市| 农安县| 长沙市| 金湖县| 五原县| 汕头市| 马公市| 吉林市| 阿拉善右旗| 稻城县| 阿克苏市| 华蓥市| 古浪县| 平潭县| 南宫市| 桓台县| 凤台县| 新巴尔虎右旗| 利辛县| 繁昌县| 兴安县| 平利县| 黎城县| 康定县| 县级市|