通過上一次的學習我們瞭解了Vue實例的生命週期以及創建了一個實例並且綁定在dom上的一個元素上了,接下來我們將要學習模板
在之前的學習中,我們通過對生命週期的學習,直到在mounted之後會存在這麼一種狀態,當data出現改變的時候,虛擬dom會重新渲染,這就是Vue吸引人的地方,Vue能夠智能地計算出重新渲染組件的最小代價
我們要介紹的第一個東西是文本插值,先給出代碼
<html>
<head>
<title>Vue</title>
<script src="https://cdn.bootcss.com/vue/2.1.8/vue.js"></script>
</head>
<body>
<div id="app">
<h1>{{message}}</h1>
</div>
</body>
<script>
var vm=new Vue({
el:'#app',
data:{
message:'Hi Vue!'
}
})
</script>
</html>
代碼中雙大括號就是文本插值,在運行的時候就被替換成了Vue實例中的數據,這就是數據的展示,這個插值是會被更新的,如果你不想要被更新的話,你可以添加v-once在標籤內。
文本插值是將文本直接轉化爲字符串展現出來,那麼如果我想展示html形式的內容怎麼辦呢例如許多文章?你只需要使用v-html來將你所想要展示的html文本放置進去
<h1 v-html="rawhtml"></h1>
聰明的你可能會想到把文本插值放到標籤屬性中去,我們需要綁定,即v-bind
<button v-bind:disabled="someCondition"></button>
文本插值同樣使用於三元表達式,我們可以很好地利用這個特點去實現控件狀態的動態綁定。
v-bind:style=" {visibility: password==''?'hidden':'visible' }"
上面這行表示當password等於空的時候隱藏否則顯示
我們發現Vue中有好多v-XXX這樣類型的標籤屬性,這其實被稱爲指令,v-for暫不討論,指令的預期值是單一的js表達式
例如 <a v-on:click="doit"> v-on則是監聽事件
接着就是過濾器,一般用於文本顯示之中
Vue 2.x 之中,過濾器只能在文本插值綁定和v-bind表達式中使用
{{ message | capitalize }}其中的capitalize就是過濾器
在Vue實例之中寫具體的過濾方案
new Vue({
el:'#app',
filters:{
capitalize:function(value){ .....return.......}
}
})
當然這是一個function,你可以傳入多個參數例如 {{ message | filterA('arg1', arg2) }}
最後談一談縮寫,v-bind:可以寫成 :而v-on:可以寫成@
例如
<button v-bind:disabled="someCondition"></button>
可以寫成
<button :disabled="someCondition"></button>