這篇文章給大家分享的是有關(guān)vue指令以及dom操作的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來(lái)看看吧。
創(chuàng)新互聯(lián)秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營(yíng)銷的理念,以專業(yè)定制企業(yè)官網(wǎng),成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),小程序開發(fā),網(wǎng)頁(yè)設(shè)計(jì)制作,成都手機(jī)網(wǎng)站制作,成都全網(wǎng)營(yíng)銷幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級(jí)專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對(duì)客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長(zhǎng)。
“AngularJS 通過被稱為 指令 的新屬性來(lái)擴(kuò)展 HTML。AngularJS 通過內(nèi)置的指令來(lái)為應(yīng)用添加功能。AngularJS 允許你自定義指令?!?/p>
這是我最初接觸“指令”這個(gè)詞。還記得那時(shí)候,ng大行其道的時(shí)候,我特別好奇怎么給一個(gè)div加一個(gè)"ng-app" 就能解決這么多問題。
后來(lái)隨著前端工作的深入,我用了jq的data-attr并且學(xué)會(huì)了jq的插件使用。但,這這并不能讓我把它“指令”聯(lián)想到一塊,后來(lái)插件需要給節(jié)點(diǎn)加個(gè)標(biāo)示來(lái)顯示某種“狀態(tài)管理” 我用了class 例如:pending,loading-end.
但是感覺和樣式混在一塊總是感覺不自在,后來(lái)我直接添加一個(gè)自定義標(biāo)簽 例如:attr-pending,attr-loading-end,通過dom上的自定義標(biāo)簽來(lái)標(biāo)示某個(gè)狀態(tài)是否完成。
在這個(gè)時(shí)候,發(fā)現(xiàn)"attr-pending,attr-loading-end"與“ng-app,ng-html”什么的非常類似,才恍然大悟,其實(shí)“指令”也可以理解為"標(biāo)識(shí)",而具體的邏輯與它無(wú)關(guān),它只是一個(gè)“標(biāo)識(shí)”罷了。至于,ng-repeat,ng-click 同樣可以理解某個(gè)程序在dom上一個(gè)“標(biāo)識(shí)” 程序通過它來(lái)掛載某個(gè)功能。
現(xiàn)在接觸了vue,vue比ng在開發(fā)上來(lái)說(shuō)代碼量很明顯少了很多,“指令”一般開發(fā)人員不需要自己來(lái)實(shí)現(xiàn)。但是如果是開發(fā)一套u(yù)i交互的組件,還是很需要它。
bind:僅調(diào)用一次,當(dāng)指令第一次綁定元素的時(shí)候。
update:第一次是緊跟在 bind 之后調(diào)用,獲得的參數(shù)是綁定的初始值;以后每當(dāng)綁定的值發(fā)生變化就會(huì)被調(diào)用,獲得新值與舊值兩個(gè)參數(shù)。
unbind:僅調(diào)用一次,當(dāng)指令解綁元素的時(shí)候。
1.指令的注冊(cè)
指令跟組件一樣需要注冊(cè)才能使用,同樣有兩種方式,一種是全局注冊(cè):
Vue.directive('dirName',function(){ //定義指令 }); 另外一種是局部注冊(cè): new Vue({ directives:{ dirName:{ //定義指令 } } });
2.可在指令函數(shù)配置中直接修改DOM[支持?jǐn)?shù)據(jù)驅(qū)動(dòng)] input里面的值修改的時(shí)候#demo里面的vue也會(huì)自動(dòng)同步
<!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>
感謝各位的閱讀!關(guān)于“vue指令以及dom操作的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
當(dāng)前題目:vue指令以及dom操作的示例分析
分享地址:http://m.rwnh.cn/article6/iggjog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、虛擬主機(jī)、全網(wǎng)營(yíng)銷推廣、關(guān)鍵詞優(yōu)化、域名注冊(cè)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)