2.2 模板语法
2.2.1 文本插值: \{\{}}
双括号
html
<span>Message: {{msg}}</span>
2.2.2 原始 HTML: v-html
html
<p>Using text interpolation: {{ rawHtml }}</p>
<p>Using v-html directive: <span v-html="rawHtml"></span></p>
2.2.3 Attribute 绑定: v-bind
html
<div v-bind:id="dynamicId"></div>
<!-- 简写 -->
<div :id="dynamicId"></div>
<!-- 与 :id="id" 相同 -->
<div :id></div>
<!-- 这也同样有效 -->
<div v-bind:id></div>
<!-- 布尔 -->
<button :disabled="isButtonDisabled">Button</button>
动态绑定多个值
js
const objectOfAttrs = {
id: 'container',
class: 'wrapper',
style: 'background-color:green'
}
html
<div v-bind="objectOfAttrs"></div>
2.2.4 使用 JavaScript 表达式:\{\{number+1\}\}
Js表达式适用场景
- {
- v-开头的特殊attribute
html
{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }}
{{ message.split('').reverse().join('') }}
<div :id="`list-${id}`"></div>
html
<time :title="toTitleDate(date)" :datetime="date">
{{ formatDate(date) }}
</time>
2.2.5 指令Directives
2.2.5.1 参数Arguments: :href
,@click
html
<a v-bind:href="url"> ... </a>
<!-- 简写 -->
<a :href="url"> ... </a>
<a v-on:click="doSomething"> ... </a>
<!-- 简写 -->
<a @click="doSomething"> ... </a>
2.2.5.2 动态参数:[attributeName]
html
<a v-bind:[attributeName]="url"> ... </a>
<!-- 简写 -->
<a :[attributeName]="url"> ... </a>
<a v-on:[eventName]="doSomething"> ... </a>
<!-- 简写 -->
<a @[eventName]="doSomething"> ... </a>
2.2.5.3 修饰符Modifiers:.prevent
html
<!-- 触发事件调用event.preventDefault() -->
<form @submit.prevent="onSubmit">...</form>