Vue條件循環(huán)判斷+計(jì)算屬性+綁定樣式v-bind的實(shí)例
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.一個(gè)參數(shù)
原理:<li v-for="value in object"> {{ value }}
b.兩個(gè)參數(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、計(jì)算屬性computed
計(jì)算屬性主要適用于一些復(fù)雜的邏輯關(guān)系,
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>計(jì)算屬性</title>
<script type="text/javascript" src="js/vue.min.js" ></script>
</head>
<body>
<div id="app">
<p>原始字符串:{{message}}</p>
<p>計(jì)算后反轉(zhuǎn)字符串:{{reversedMessage}}</p>
</div>
<script>
var vm=new Vue({
el:'#app',
data:{
message:'Runoob'
},
computed:{
//計(jì)算屬性reversedMessage的getter
reversedMessage:function(){
//this指向vm實(shí)例
return this.message.split('').reverse().join('');
}
}
})
</script>
</body>
</html>
由于computed用于計(jì)算屬性,而reversedMessge相對于computed的屬性的獲得,其this指向的是vm的實(shí)例,當(dāng)message發(fā)生改變的時(shí)候,對應(yīng)的reversedMessage也會(huì)發(fā)生相對應(yīng)改變。
擴(kuò)展:computed VS methods
由于computed與methods實(shí)現(xiàn)效果相同,所以也可以使用methods來替代computes,
區(qū)別如下:
a、computed基于它的依賴緩存,只有相關(guān)依賴發(fā)生改變時(shí),才會(huì)重新取值;
b、methods而言,在重新渲染的時(shí)候,函數(shù)總會(huì)重新調(diào)用執(zhí)行。
可以說computed性能會(huì)更好,但若不希望緩存,可以使用methods屬性
4、樣式綁定
在vue中由于class與style是HTML元素的屬性,用于設(shè)置元素的樣式,可以用v-bind來設(shè)置樣式屬性
實(shí)例1:
<div v-bind:class="{active:isActive}"></div>
等價(jià)于
<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ù)組將多個(gè)樣式對象應(yīng)用到一個(gè)元素上
<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)判斷+計(jì)算屬性+綁定樣式v-bind的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue中jsencrypt與base64加密解密的實(shí)用流程
vue項(xiàng)目里面使用到的加密和解密的方法,本文主要介紹了vue中jsencrypt與base64加密解密的實(shí)用流程,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
使用vue.js實(shí)現(xiàn)聯(lián)動(dòng)效果的示例代碼
本篇文章主要介紹了使用vue.js實(shí)現(xiàn)聯(lián)動(dòng)效果的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01
Vuejs第七篇之Vuejs過渡動(dòng)畫案例全面解析
這篇文章主要介紹了Vuejs第七篇之Vuejs過渡動(dòng)畫案例全面解析的相關(guān)資料,需要的朋友可以參考下2016-09-09
vue設(shè)計(jì)一個(gè)倒計(jì)時(shí)秒殺的組件詳解
這篇文章主要介紹了vue設(shè)計(jì)一個(gè)倒計(jì)時(shí)秒殺的組件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
vue3.0父子傳參,子修改父數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了vue3.0父子傳參,子修改父數(shù)據(jù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
Vue實(shí)現(xiàn)點(diǎn)擊按鈕進(jìn)行上下頁切換
這篇文章主要介紹了Vue實(shí)現(xiàn)點(diǎn)擊按鈕進(jìn)行上下頁的切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01

