文本
数据绑定最常见的形式是使用Mustache 语法(双大括号)的文本插值
<span>Message: {{ msg }}</span>
通过使用v-once指令,执行一次性插值,当数据改变时,插值处的内容不会更新,但请注意这会影响到该节点所有的数据绑定
<span v-once>这个将不会改变: {{ msg }}</span>
纯html
双大括号会将数据解释为纯文本,而非HTML,为了输出真正的html,需要使用v-html指令
<div v-html="rawHtml"></div> 这个div的内容将会被替换成为属性值rawHtml
var app=new Vue({
el:"#app-7",
data:{rawHtml:"<h2>hello world</h2>"}
})
特性(属性)
Mustache 语法不能作用在HTML特性(属性)上,这种情况应该使用v-bind指令
<div v-bind:id="dynamicId"></div>
同样适用于布尔类特性
<button v-bind:disabled="isButtonDisabled">Button</button>
使用JavaScript表达式
Vue.js都提供了完全的Javascript表达式支持
{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }}
{{ message.split('').reverse().join('') }}
<div v-bind:id="'list-' + id"></div>
指令
指令是带有v-前缀的特殊属性
<p v-if="seen">现在你看到我了</p>v-if指令将根据表达式seen的值的真假来插入/移除<p>元素
参数
一些指令能够接收一个参数,在指令名称之后以冒号表示,例如,v-bind指令可以用于响应式的更新html属性
<a v-bind:href="url"></a>
在这里href是参数,告知v-bind指令将该元素的href属性与表达式url的值绑定在一起另一个例子是v-on指令,它用于监听DOM事件
<a v-on:click="doSomething"></a>
修饰符
修饰符Modifiers是以点 . 指名的特殊后缀,用于指出一个指令应该以特殊方式绑定,
例如.prevent修饰符告诉v-on指令对于触发的事件调用event.preventDefault()
<form v-on:submit.prevent="onSubmit"></form>
过滤器
Vue.js允许自定义过滤器,可被用作一些常见的文本格式化,过滤器可以用在2个地方,mustache 差值和v-bind 表达式
<!-- in mustaches -->
{{ message | capitalize }}
<!-- in v-bind -->
<div v-bind:id="rawId | formatId"></div>
过滤器函数总接收表达式的值作为第一个参数,在这个例子中capitalize过滤器函数将会接收message的值作为第一个参数{{message1 | capitalize }}
var app7 = new Vue({
el: '#app-7',
data: {
message1: "lovestudyvue"
},
filters:{
capitalize:function(value){
if(!value) return ''
//value = value.toString()
return value.charAt(0).toUpperCase() + value.slice(1)
}
}
})
//过滤器添加在javascript表达式的尾部,前面的是原始的数据,主要用于文本转换
缩写
v-bind缩写
完整写法<a v-bind:href="url"></a> 缩写<a :href="url"></a>
v-on缩写
<a v-on:click="doSomething"></a> 缩写<a @click="doSomething"></a>