使用“Mustache”语法 (即用双大括号包裹) 的文本插值:html
<span>Message: {{ msg }}</span>
复制代码
Mustache 标签将会被替代为对应数据对象上 “msg” 属性的值。不管什么时候,绑定的数据对象上 msg 属性发生了改变,插值处的内容都会更新。bash
若是使用 v-once 指令,你也能执行一次性插值,当数据改变时,插值处的内容不会更新。但请留心这会影响到该节点上的其它数据绑定。app
直接用双大括号包裹只是普通文本,若是想实现HTML代码效果,须要加入v-html指令函数
html部分:ui
<div id="app">
<p>Using mustaches: {{ rawHtml }}</p>
<p>Using v-html directive: <span v-html="rawHtml"></span></p>
</div>
复制代码
js部分:this
var vm = new Vue({
el:'#app',
data:{
rawHtml:'<span style="color:red">this is red</span>'
}
});
复制代码
v-html使用时在span标签的前标签内写入“v-html="xxx”,至关于将data中的值以HTML形式放入span标签内。url
Mustache 语法不能做用在 HTML attribute 上,遇到这种状况应该使用 v-bind 指令:spa
格式:v-bind:属性="变量名"code
html部分:cdn
<div v-bind:color="textcolor">123</div>
复制代码
js部分:
data:{
textcolor:"red"
}
复制代码
将变量textcolor的值“red"绑定在盒子的 "color" 属性上
对于布尔属性,v-bind使用为:
<button v-bind:disabled="isButtonDisabled">Button</button>
复制代码
若是 isButtonDisabled 的值是 null、undefined 或 false,则 disabled attribute 甚至不会被包含在渲染出来的 <button> 元素中。
迄今为止,在咱们的模板中,咱们一直都只绑定简单的属性键值。但实际上,对于全部的数据绑定,Vue.js 都提供了彻底的 JavaScript 表达式支持。
{{ data变量 + 1 }} //
{{ data变量/表达式 ? 'true代码' : 'false代码' }} //三元运算
{{ data变量.split('').reverse().join('') }} //能够进行函数调用
<div v-bind:id="'list-' + id"></div>
复制代码
这些表达式会在所属 Vue 实例的数据做用域下做为 JavaScript被解析。
限制是:每一个绑定都只能包含单个表达式,因此下面的例子都不会生效。
<!-- 这是语句,不是表达式 -->
{{ var a = 1 }}
<!-- 流控制也不会生效,请使用三元表达式 -->
{{ if (ok) { return message } }}
复制代码
指令 (Directives) 是带有 v- 前缀的特殊 attribute。指令 attribute 的值预期是单个 JavaScript 表达式 。指令的职责是, 当表达式的值改变时,将其产生的连带影响,响应式地做用于 DOM。 回顾咱们在介绍中看到的例子:
<p v-if="seen">如今你看到我了</p>
复制代码
这里,v-if 指令将根据表达式 seen 的值的真假来插入/移除 <p> 元素。
一些指令可以接收一个“参数”,在指令名称以后以冒号表示。例如,v-bind 指令能够用于响应式地更新 HTML属性值:
<a v-bind:href="url">...</a>
复制代码
在这里 href 是参数 ,告知 v-bind 指令将该元素的 href attribute 与表达式 url 的值绑定。
另外一个例子是 v-on 指令,它用于监听 DOM 事件:
<a v-on:click="doSomething">...</a>
复制代码
在这里参数是监听的事件名。
能够动态的绑定不一样的属性,能够用方括号括起来的 JavaScript 表达式做为一个指令的参数:
<!--
注意,参数表达式的写法存在一些约束,如以后的“对动态参数表达式的约束”章节所述。
-->
<a v-bind:[attributeName]="url"> ... </a>
复制代码
这里的 attributeName(命名中不能有逗号或冒号等符号) 会被做为一个 JavaScript 表达式进行动态求值,求得的值将会做为最终的参数来使用。
例如,若是你的 Vue 实例有一个 data 属性 attributeName,其值为 "href",那么这个绑定将等价于 <a v-bind:href="url">...</a>
。
一样地,你可使用动态参数为一个动态的事件名绑定处理函数:
<a v-on:[eventName]="doSomething"> ... </a>
复制代码
在这个示例中,当 eventName 的值为 "focus" 时,v-on:[eventName] 将等价于 v-on:focus。
修饰符 (modifier) 是以半角句号 " . " 指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。
v-bind 缩写
<!-- 完整语法 -->
<a v-bind:href="url">...</a>
<!-- 缩写 -->
<a :href="url">...</a>
复制代码
v-on 缩写
<!-- 完整语法 -->
<a v-on:click="doSomething">...</a>
<!-- 缩写 -->
<a @click="doSomething">...</a>
复制代码