1、Mustache語(yǔ)法
就是雙大括號(hào){{}}的寫(xiě)法,有了它,我們可以在視圖顯示我們的數(shù)據(jù)并及時(shí)自動(dòng)更新,無(wú)需手動(dòng)控制。
<div id="app">{{ name }}</div>
<script>
let app = new Vue({
el: '#app',
data: {
name: '前端學(xué)習(xí)'
}
})
頁(yè)面上就會(huì)顯示——前端學(xué)習(xí)。
2、綁定純html
有時(shí)候有這樣的需求,我們的數(shù)據(jù)包含了一些html的標(biāo)簽代碼,比如:
name: '<strong>前端學(xué)習(xí)</strong>'
文本“前端學(xué)習(xí)”被一個(gè)<strong>標(biāo)簽包住,而我們?cè)谡故镜氖?,需要合理地渲染strong標(biāo)簽,再顯示我們想要展示文本內(nèi)容。這種情況,用原來(lái)的雙大括號(hào){{}}方式,就不能滿(mǎn)足了,他會(huì)渲染成:
<strong>前端學(xué)習(xí)</strong>
這時(shí)候可以用vue提供的v-html指令:
<div id="app" v-html="name"></div>
<script>
let app = new Vue({
el: '#app',
data: {
name: '<strong>前端學(xué)習(xí)</strong>‘
}
})
</script>
效果圖.png
3、綁定屬性
前面兩個(gè)都是控制視圖展示文本內(nèi)容,有時(shí)候,html標(biāo)簽的屬性也很重要,比如:<a> 標(biāo)簽的 href 屬性,<img /> 標(biāo)簽的 src 屬性等。Vue 中如何將 data 中的數(shù)據(jù)綁定為這些屬性的值呢?還是用雙大括號(hào) {{}} 的寫(xiě)法嗎?
當(dāng)然不是,這里不需要用雙大括號(hào) {{}},我們用 v-bind 指令,如下:
<div id="app">
<!-- 在href前用v-bind:修飾 -->
<a v-bind:href="link">百度</a>
</div>
<script>
let app = new Vue({
el: '#app',
data: {
link: 'http://www.baidu.com'
}
})
</script>
在視圖中的 a 標(biāo)簽,我們?cè)?<a> 標(biāo)簽加上 v-bind: 來(lái)修飾 href 屬性,而它的值就是 data 中的屬性 link。我們來(lái)看看解析渲染的 html 頁(yè)面效果。
效果圖.png
標(biāo)簽 <a> 的屬性 href 的值成功地綁定了 data 數(shù)據(jù) link 的值,通過(guò) v-bind 指令,就成功地將數(shù)據(jù)綁定在視圖的標(biāo)簽的屬性中了。
另外 v-bind 有簡(jiǎn)寫(xiě)方式,就僅僅是冒號(hào) :。
<a v-bind:href="link">百度</a>
<a :href="link">百度</a>
4、支持JavaScript表達(dá)式
- 加減乘除運(yùn)算:
<div id="app">{{ num+3 }}</div>
<script>
let app = new Vue({
el:"#app",
data:{
num:2
}
});
</script>
效果圖.png
- 三元運(yùn)算符:
<div id="app">{{ ok ? 'yes':'no' }}</div>
<script>
let app = new Vue({
el:"#app",
data:{
ok:true
}
});
</script>
效果圖.png
- 字符串拼接
<div id="app">
<a :href="'http://'+host">百度</a>
</div>
<script>
let app = new Vue({
el:"#app",
data:{
host:'www.baidu.com'
}
});
</script>
效果圖.png
注意:
雖然vue支持javascript表達(dá)式運(yùn)算,我們只會(huì)在運(yùn)算比較簡(jiǎn)單的情況下才會(huì)這么玩,當(dāng)運(yùn)算比較繁瑣復(fù)雜的時(shí)候,一定要用vue的computed屬性來(lái)進(jìn)行計(jì)算。
小結(jié)
在視圖綁定數(shù)據(jù)的方法:Mustache語(yǔ)法(雙大括號(hào)語(yǔ)法),綁定純HTML,綁定屬性,支持javascript表達(dá)式的寫(xiě)法,以及表達(dá)式寫(xiě)法和computed區(qū)別。