Vue 2.0入門基礎(chǔ)知識(shí)之內(nèi)部指令詳解
1.Vue.js介紹
當(dāng)前前端三大主流框架:Angular、React、Vue。React前段時(shí)間由于許可證風(fēng)波,使得Vue的熱度蹭蹭地上升。另外,Vue友好的API文檔更是一大特色。Vue.js是一個(gè)非常輕量級(jí)的工具,與其說是一個(gè)MVVM框架,不如說是一個(gè)js庫(kù)。Vue.js具有響應(yīng)式編程和組件化的特點(diǎn)。響應(yīng)式編程,即保持狀態(tài)和視圖的同步,狀態(tài)也可以說是數(shù)據(jù)吧;而其組件化的理念與React則一樣,即“一切都是組件,組件化思想方便于模塊化的開發(fā),是前端領(lǐng)域的一大趨勢(shì)。
2.內(nèi)部指令
2-1.v-if v-else v-show:前兩者一般配合使用,v-show的效果類似于v-if。
實(shí)例如下:
<body> <div id="app"> <p v-if="flag">if</p> <p v-else>else</p> <p v-show="flag">show</p> </div> </body> <script> var vm= new Vue({ el:"#app", data:{ flag:true } }); </script>
DOM結(jié)構(gòu)中,三個(gè)p標(biāo)簽中的內(nèi)容是否顯示在頁(yè)面中取決于flag的布爾值屬性。當(dāng)flag為true時(shí),if和show都會(huì)顯示,else也不會(huì)存在于DOM結(jié)構(gòu)中。v-if和v-show的不同體現(xiàn)在:v-if是根據(jù)條件的值判斷是否加載,可以減輕服務(wù)器的壓力,但是缺點(diǎn)是當(dāng)改變條件的值,頁(yè)面又要加載一次;v-show則無論條件的值是否為true,都會(huì)加載(若條件為true,則display屬性設(shè)置為其默認(rèn)屬性,反之,設(shè)置為none)
2-2.v-for 循環(huán)指令
實(shí)例如下:
<body> <div id="app"> <ol> <li v-for="b in b">{}</li> </ol> </div> </body> <script> var vm= new Vue({ el:"#app", data:{ b:['a','b','c',1,2] } }); </script>
頁(yè)面會(huì)顯示5個(gè)li,插值的效果是li會(huì)顯示與數(shù)組b一 一對(duì)應(yīng)的元素,v-for有點(diǎn)類似于for in循環(huán)
2-3 v-text v-html 文本(html字符串)指令
<body> <div id="app"> <p v-text="msgText"></p> <p v-html="msgHtml"></p> </div> </body> <script> var vm= new Vue({ el:"#app", data:{ msgText:"China", msgHtml:"<span>中國(guó)</span>" } }); </script>
可以聯(lián)想到j(luò)query的text()、html()。到現(xiàn)在,你會(huì)發(fā)現(xiàn)前面都是利用插值操作,即{{}},這種做法會(huì)在一定程度上影響性能。
2-4 v-on 綁定事件監(jiān)聽器
實(shí)例如下:
<body> <div id="app"> <button v-on:click="Hi()">Button</button> </div> </body> <script> var vm= new Vue({ el:"#app", methods:{ Hi:function(){ alert("Hello World!") } } }); </script>
同理,類比jquery的on()方法,綁定事件用的,實(shí)例中v-on:click可以簡(jiǎn)寫為@click。click可以替換成鼠標(biāo)的其他操作,如mouseout、mouseover等等。
2-5 v-bind指令
實(shí)例如下:
<body> <div id="app"> <a v-bind:style="{color:'red'}" :src="message">{{message}}</a> </div> </body> <script> var vm = new Vue({ el: "#app", data: { message: "前端工程師" } }); </script>
效果為a標(biāo)簽顯示紅色,且其src屬性為vm.message。v-bind指令主要用于設(shè)置html標(biāo)簽的屬性,其簡(jiǎn)寫形式為 v-bind:——>:
2-6 v-model 數(shù)據(jù)雙向綁定指令
實(shí)例如下:
<body> <div id="app"> <p>{{message}}</p> <input type="text" v-model="message"> </div> </body> <script> var vm = new Vue({ el: "#app", data: { message: "前端工程師" } }); </script>
當(dāng)input輸入的值發(fā)生變化時(shí),p標(biāo)簽包含的內(nèi)容也會(huì)隨之變化,且與前者保持一致。
2-7 v-pre 指令
實(shí)例如下:
<body> <div id="app"> <p>{{message}}</p> <p v-pre>{{message}}</p> </div> </body> <script> var vm = new Vue({ el: "#app", data: { message: "前端工程師" } }); </script>
第一個(gè)p標(biāo)簽輸出“前端工程師”,而第二個(gè)p標(biāo)簽則會(huì)跳過vue編譯,輸出原始值,即{{message}}。
2-8 v-cloak指令
v-cloak指令的作用是當(dāng)DOM樹構(gòu)建好完成頁(yè)面的渲染后才執(zhí)行,且其須要與css一起使用
2-9 v-once指令
v-once指令的作用是只有當(dāng)DOM樹第一次渲染時(shí)起作用。
總結(jié)
以上所述是小編給大家介紹的Vue 2.0入門基礎(chǔ)知識(shí)之內(nèi)部指令詳解,希望對(duì)大家有所幫助!
相關(guān)文章
vue+axios實(shí)現(xiàn)文件上傳的實(shí)時(shí)進(jìn)度條
最近用vue寫上傳的時(shí)候,遇到一個(gè)需求就是頁(yè)面上展示上傳的進(jìn)度條,之后寫過一次,但是用的是假交互,直接從0-100,今天分享一下用axios自帶的onUploadProgress來完成這個(gè)小需求,感興趣的朋友可以參考下2024-01-01Vue報(bào)錯(cuò)"Failed?to?resolve?loader:less-loader"的解決方
這篇文章主要給大家介紹了關(guān)于Vue報(bào)錯(cuò)"Failed?to?resolve?loader:less-loader"的解決方法,文中通過圖文介紹的非常詳細(xì),對(duì)同樣遇到這樣問題的朋友具有一定的需要的朋友可以參考下2023-02-02mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼
這篇文章主要介紹了mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09Vue全局使用less樣式,組件使用全局樣式文件中定義的變量操作
這篇文章主要介紹了Vue全局使用less樣式,組件使用全局樣式文件中定義的變量操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-10-10Vue+Node實(shí)現(xiàn)商品列表的分頁(yè)、排序、篩選,添加購(gòu)物車功能詳解
這篇文章主要介紹了Vue+Node實(shí)現(xiàn)商品列表的分頁(yè)、排序、篩選,添加購(gòu)物車功能,結(jié)合實(shí)例形式分析了vue.js前臺(tái)商品分頁(yè)、排序、篩選等功能及后臺(tái)node.js處理技巧,需要的朋友可以參考下2019-12-12