Vue.js條件與循環(huán)
1、條件判斷
(1)v-if,
<div id="app"> <p v-if="seen">現(xiàn)在你看到我了</p> <template v-if="ok"> <h1>菜鳥教程</h1> </template> </div> <script> new Vue({ el:'#app', data:{ seen:true, ok:true } }); </script>
(2)v-else-if
(3)v-else
<div id="app"> <div v-if="type === 'A' ">A</div> <div v-else-if="type === 'B' ">B</div> <div v-else="type === 'C' ">C</div> </div> <script> new Vue({ el:'#app'; data:{ type:'C' } }); </script>
(4)v-show
除了v-if、v-else-if、v-else,還可以使用v-show指令來根據(jù)條件展示元素
<div id="app"> <h1 v-show="ok">Hello</h1> </div> <script> new Vue({ el:'#app', data:{ ok:true } }); </script>
2、循環(huán)語句
使用v-for指令
(1)簡單的v-for
<ol> <li v-for="site in sites">{{ site.name }}</li> </ol>
(2)模板中的v-for
<template v-for="site in sites"> <li> {{ site.name }} </li> <li> ----- </li> </template>
綜合小案例,如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/vue.min.js" ></script> </head> <body> <div id="app"> <ol> <li v-for="site in sites"> {{ site.name }} </li> </ol> <!--利用模板化template進(jìn)行循環(huán)--> <ul> <template v-for="site in sites"> <li>{{ site.name }}</li> <li>-------</li> </template> </ul> </div> <script> new Vue({ el:'#app', data:{ sites:[ {name:'Zhao'}, {name:'Xiao'}, {name:'yan'} ] } }); </script> </body> </html>
(3)v-for迭代對象
a.一個參數(shù)
原理:<li v-for="value in object"> {{ value }}
b.兩個參數(shù)
原理:<li v-for="(value,key) in object" > {{ key }} : {{ value }}
(4)v-for迭代整數(shù)
<div id="app"> <ul> <li v-for="n in 10"> {{ n }} </li> </ul> </div> <script> new Vue({ el: '#app' }) </script>
3、計算屬性computed
計算屬性主要適用于一些復(fù)雜的邏輯關(guān)系,
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>計算屬性</title> <script type="text/javascript" src="js/vue.min.js" ></script> </head> <body> <div id="app"> <p>原始字符串:{{message}}</p> <p>計算后反轉(zhuǎn)字符串:{{reversedMessage}}</p> </div> <script> var vm=new Vue({ el:'#app', data:{ message:'Runoob' }, computed:{ //計算屬性reversedMessage的getter reversedMessage:function(){ //this指向vm實(shí)例 return this.message.split('').reverse().join(''); } } }) </script> </body> </html>
由于computed用于計算屬性,而reversedMessge相對于computed的屬性的獲得,其this指向的是vm的實(shí)例,當(dāng)message發(fā)生改變的時候,對應(yīng)的reversedMessage也會發(fā)生相對應(yīng)改變。
擴(kuò)展:computed VS methods
由于computed與methods實(shí)現(xiàn)效果相同,所以也可以使用methods來替代computes,
區(qū)別如下:
a、computed基于它的依賴緩存,只有相關(guān)依賴發(fā)生改變時,才會重新取值;
b、methods而言,在重新渲染的時候,函數(shù)總會重新調(diào)用執(zhí)行。
可以說computed性能會更好,但若不希望緩存,可以使用methods屬性
4、樣式綁定
在vue中由于class與style是HTML元素的屬性,用于設(shè)置元素的樣式,可以用v-bind來設(shè)置樣式屬性
實(shí)例1:
<div v-bind:class="{active:isActive}"></div>
等價于
<div class="active">
(1)vue.js.style(內(nèi)聯(lián)樣式)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/vue.min.js" ></script> </head> <body> <div id="app"> <div v-bind:style="{color:activeColor,fontSize:fontSize + 'px'}">菜鳥教程</div> </div> <script> new Vue({ el:'#app', data:{ activeColor:'green', fontSize:30 } }) </script> </body> </html>
(2)使用數(shù)組將多個樣式對象應(yīng)用到一個元素上
<div v-bind:style="[baseStyles,overridingStyles]">菜鳥教程</div> <script> new Vue({ el:'#app', data:{ baseStyles:{ color:'green', fontSize:'30px' }, overridingStyles:{ 'font-weight':'blod' } } }) </script>
以上這篇Vue條件循環(huán)判斷+計算屬性+綁定樣式v-bind的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com