這篇文章給大家分享的是有關(guān)Vue.js中基礎(chǔ)指令的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司成立于2013年,我們提供高端網(wǎng)站建設(shè)、重慶網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、網(wǎng)絡(luò)營(yíng)銷推廣、小程序設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站推廣服務(wù),提供專業(yè)營(yíng)銷思路、內(nèi)容策劃、視覺(jué)設(shè)計(jì)、程序開發(fā)來(lái)完成項(xiàng)目落地,為地磅秤企業(yè)提供源源不斷的流量和訂單咨詢。
Vue.js 是一套構(gòu)建用戶界面的漸進(jìn)式框架。他自身不是一個(gè)全能框架——只聚焦于視圖層。因此它非常容易學(xué)習(xí),非常容易與其它庫(kù)或已有項(xiàng)目整合。在與相關(guān)工具和支持庫(kù)一起使用時(shí),Vue.js 也能完美地驅(qū)動(dòng)復(fù)雜的單頁(yè)應(yīng)用。他是基于AnjularJs 編寫的,所以和前者的語(yǔ)法特別相似,卻又使用簡(jiǎn)潔了很多。
那今天,我就給大家詳細(xì)的說(shuō)道說(shuō)道這個(gè) Vue.js ,以下是我們這次詳解的目錄,朋友們可以根據(jù)自己的情況選擇性閱讀,所有操作均附有代碼實(shí)現(xiàn)。
1. Vue.js 如何綁定到頁(yè)面中,使用他的功能。
2. Vue 實(shí)例化對(duì)象的生命周期。
3. Vue 的 所有 數(shù)據(jù)綁定指令
1. Vue.js 如何綁定到頁(yè)面中,使用他的功能。
先看下面的一段代碼:
效果如下:
上述代碼就是點(diǎn)擊按鈕有彈窗,下面解析一下這段代碼。
var app1= new Vue({ el:"#app1", data:{ message:"我在app1中顯示出來(lái)了嗎?", func:function(){ alert(this.message); } } }); console.log(app1.$data.message);
通過(guò)Vue.js的構(gòu)造函數(shù)實(shí)例化出一個(gè)根實(shí)例 app1 ,說(shuō)白了,這就是我們面向?qū)ο蟮膶?duì)象的實(shí)例化,直接 new 一個(gè)對(duì)象。
el:"#app1", 這是在 掛載我們實(shí)例化對(duì)象的元素節(jié)點(diǎn),就是這個(gè)app1 對(duì)象作用域是那一個(gè)標(biāo)簽里面的。這里可以是 id、class、tagname。但是主要還是用id,因?yàn)樗奈ㄒ恍浴?/p>
data:{} 是定義 這個(gè)對(duì)象的變量和方法,注意所有在和 app1 有關(guān)聯(lián)的變量、方法都必須在data中聲明。
注意:
(1)作用域。js5 只有函數(shù)作用域,所以 data 中的函數(shù)如果想調(diào)用變量,就必須通過(guò) this. 調(diào)用,或者直接通過(guò)對(duì)象名調(diào)用。
(2)外部調(diào)用。app1.$data.message; 在js中直接調(diào)用 vue 對(duì)象的屬性、方法時(shí),需要鏈?zhǔn)秸Z(yǔ)法,一層層點(diǎn)出來(lái),這里用 $data ,主要還是和js的變量作區(qū)別
(3)與HTML代碼的綁定。 這里我是通過(guò) js 的onclick直接綁定的,當(dāng)然 vue 有自己的事件綁定,這里暫且不講,如果用 js 的行內(nèi)綁定,注意需要帶對(duì)象名。這就是純 OOP思想了。相信大家對(duì)面向?qū)ο笠膊荒吧绻娴牟恢朗巧锻嬉獾?,趕緊百度學(xué)去。
以上就是最最最最最最.....基礎(chǔ)的使用 vue 的方法了。
2. Vue 實(shí)例化對(duì)象的生命周期。
接下來(lái),我們說(shuō)一下,一個(gè)實(shí)例化出來(lái)的對(duì)象,他的生命周期是啥樣的,要經(jīng)歷那些階段。請(qǐng)看下面一段代碼:
我的聲明周期,大家看吧!
那接下來(lái)看看效果圖:
通過(guò)控制臺(tái)的打印效果可以看出來(lái),實(shí)例化 vue 對(duì)象大致分為 創(chuàng)建vue實(shí)例、掛載到dom、數(shù)據(jù)變化更新、vue實(shí)例銷毀 4個(gè)階段,,注意每個(gè)階段都有對(duì)應(yīng)的鉤子,我們可以通過(guò)對(duì)這些鉤子進(jìn)行操作,達(dá)成一些功能。雖然初學(xué)者用不太上,但是提前了解一下還是好的,到時(shí)候碰到實(shí)際功能要能想得到生命周期的鉤子。
3. Vue 的 所有 數(shù)據(jù)綁定指令
那現(xiàn)在我們就總結(jié)一下 vue 的最大亮點(diǎn),各種靈活的數(shù)據(jù)綁定方法。這里主要列舉實(shí)例詳解 {{}} 、 v-once 、 v-html 、 v-bind 和 v-model 。
(1)首先是 {{}} 、 v-once 、 v-html 的用法,請(qǐng)看下面的代碼:
數(shù)據(jù)綁定篇
{{message}}
{{message}}
然后看一下效果:
還是分析一下這個(gè)小demo。
是綁定HTML標(biāo)簽,注意 他可以直接綁定 HTML模板,但是這一堆HTML標(biāo)簽不能是多層嵌套的。什么意思呢,就是你之間綁定一段標(biāo)簽可以,綁定一個(gè)模板也可以,但是如果綁定一個(gè)模板,那這個(gè)模板內(nèi)部不能再嵌套模板了。否則無(wú)法渲染的。上述代碼就是直接導(dǎo)入了一個(gè)加了行內(nèi)樣式的h2標(biāo)簽,功能十分強(qiáng)大,比直接操作dom節(jié)點(diǎn)強(qiáng)太多了,效率是幾何倍的增長(zhǎng)。
(2) 其次是 v-bind
數(shù)據(jù)綁定篇 -------------------------------------------------------------------------------------
然后看一下效果:
那我們解析一下上面的代碼。
v-bind 他是專門用來(lái)綁定屬性的 ,主要用來(lái)操作元素的 class 列表和它的內(nèi)聯(lián)樣式。這一點(diǎn)和AnjularJs的 ng-bind 是完全不同的,要注意!?。?/p>
這是在直接綁定行內(nèi)樣式style。然后通過(guò)綁定點(diǎn)擊函數(shù),為各個(gè)比那兩賦值,達(dá)到點(diǎn)擊更改div樣式的目的。 這個(gè)是直接綁定修改 class類名,在頁(yè)內(nèi)樣式表中有我定義的 .aaa 和 .bbb 兩個(gè)類名,通過(guò)動(dòng)態(tài)修改class名修改樣式,這也比 JQuery 直接操作dom節(jié)點(diǎn)快捷不少。這是直接綁定屬性,動(dòng)態(tài)修改 img 的src 屬性。達(dá)到點(diǎn)擊圖像顯示不同的圖像的效果。
這里要特別強(qiáng)調(diào)一下,v-bind 直接綁定的是屬性,而不是樣式 ,對(duì)于 img ,他的src是屬性,但是對(duì)于 div ,width 啥的是樣式,不是屬性,所以 v-bind:width="100+'px'" 不好使.
至于 v-bind 屬性綁定,也就常用用法也就這么多了。
(3) v-model
用 v-model 指令在表單控件元素上創(chuàng)建雙向數(shù)據(jù)綁定。它會(huì)根據(jù)控件類型自動(dòng)選取正確的方法來(lái)更新元素。它負(fù)責(zé)監(jiān)聽用戶的輸入事件以更新數(shù)據(jù),并特別處理一些極端的例子。v-model 并不關(guān)心表單控件初始化所生成的值。因?yàn)樗鼤?huì)選擇 Vue 實(shí)例數(shù)據(jù)來(lái)作為具體的值。在默認(rèn)情況下, v-model 在 input 事件中同步輸入框的值與數(shù)據(jù),但你可以添加一個(gè)修飾符 lazy ,從而轉(zhuǎn)變?yōu)樵?change 事件中同步
下面我們看一段代碼:
數(shù)據(jù)綁定篇 {{ myText }}
-------------------------------------------------------------------------------------
您選擇了: {{ picked }}
-------------------------------------------------------------------------------------
您對(duì)飛哥的評(píng)價(jià): {{ names }}
--------------------------------------------------------------------------
真心話大冒險(xiǎn): {{ selected1 }}
------------------------------------------------------------------------------
你想和飛哥偷偷干些啥: {{ selected22 }}
然后看一下效果:
然后解析一下這段代碼。這里就不一一詳細(xì)解釋代碼了,挑幾個(gè)典型的詳解,其他的便很簡(jiǎn)單了。
我們就以 多選按鈕為例:
//這是復(fù)選列表的變量,函數(shù) selected2:[], selected22:"", funcselected22:function(){ this.selected22 = this.selected2.join(" "); },
這里要強(qiáng)調(diào)一下,v-model 動(dòng)態(tài)綁定這種多選框之類的,會(huì)以數(shù)組的形式存取,所以,我們用 selected2:[], 變量接收 選擇框 的數(shù)據(jù),但是我們又不能直接用雙大括號(hào)顯示數(shù)據(jù),朋友們可以試驗(yàn)一下,雙大括號(hào)是純文本顯示,他會(huì)把整個(gè)數(shù)組的中括號(hào),引號(hào),逗號(hào)都顯示出來(lái),太丑了。所以這里,我用了JQuery的數(shù)組分割為字符串的函數(shù) join(" "),把選中的數(shù)據(jù)分割成字符串,再用一個(gè)字符串類型的變量接收數(shù)據(jù),這樣打印出來(lái)就好多了。注意,這里 join(" ") 我用的分隔符是 空白字符,它占一個(gè)漢字的空間,但是不會(huì)顯示出來(lái)。
感謝各位的閱讀!關(guān)于“Vue.js中基礎(chǔ)指令的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!