模板语法
插值
文本
数据绑定最常见的形式就是使用双大括号进行文本插值。
使用v-once
指令能够进行一次性插值而不能继续更新视图。
<span v-once>{{msg}}</span>
原始HTML
双大括号不会解释数据,只会解释为普通文本,因此需要使用v-html
属性
<p>Using mustaches:{{rawHtml}}</p>
<p>Using v-html directive:<span v-html:"rawHtml"></span></p>
Attribute
使用v-bind
指令;
<div v-bind:id="dynamicId"></div>
使用JavaScript表达式
表达式会在所属vue实例的数据作用域下作为JS被解析,但只能包含单个表达式。
{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }}
{{ message.split('').reverse().join('') }}
<div v-bind:id="'list-' + id"></div>
注意!模板表达式都被放在沙盒中,只能访问全局变量的一个白名单,如 Math
和 Date
。你不应该在模板表达式中试图访问用户定义的全局变量。
指令
指令是带有v-前缀的特殊attribute,其预期值是单个的JS表达式,指令的实则是当表达式的值受改变时,响应式地作用于DOM。
<p v-if="seen">
现在你可以看到这句话。
</p>
参数
一些指令可以接受一个参数,在指令名称后以冒号表示,例如v-bind:class
<a v-bind:href="url">...</a>
<a v-on:click="doSomthing">...</a>
动态参数
<a v-bind:[attrName]="url">...</a>
这里的attrName会被作为一个JS表达式进行动态求值,例如,如果有一个vue实例中的data的属性zttrName值为“herf",那么这个绑定将等价于v-bind:href
对动态参数值的约束:动态参数会期待一个字符串,异常情况下值为null,可用于显解除绑定。
在DOM中使用模板是尽量避免使用大写字母,因为浏览器会把attr名全部强制为小写,只有实例中也写成对应小写名称变量时才会正常工作。
修饰符
修饰符是以.指明的特殊后缀,用于指出指令以特殊方式指定,比如.prevent
告诉v-on
指令对于触发的事件调用event.preventDefault()
来阻止浏览器默认行为。
缩写
<a v-bind:href="url">...</a>
<a :href="url">..</a>
<a :[key]="url">...</a>
//v-on缩写
<a v-on:click="doSomething">...</a>
<a @click="doSomething">...</a>
<a @[event]="doSomthing">...</a>
参考来源:https://cn.vuejs.org/v2/guide/syntax.html