Skip to content

指令

v-text

  • 预期:string
  • 详细:更新元素的 textContent。如果要更新部分的 textContent,需要使用 插值。
  • 示例:
html
<span v-text="msg"></span>
<!-- 和下面的一样 -->
<span>{{msg}}</span>

v-html

  • 预期:string
  • 详细:更新元素的 innerHTML。注意:内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译。 如果试图使用 v-html 组合模板,可以重新考虑是否通过使用组件来替代。
  • 示例:
html
<div v-html="html"></div>

v-show

  • 预期:any
  • 详细:根据表达式之真假值,切换元素的 display CSS property。当条件变化时该指令触发过渡效果。
  • 示例:
html
<h1 v-show="ok">Hello!</h1>

v-if

  • 预期:any

  • 用法:根据表达式的值的 truthiness 来有条件地渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。 如果元素是 <template>,将提出它的内容作为条件块。当条件变化时该指令触发过渡效果。

  • 示例:

html
<h1 v-if="awesome">Vue is awesome!</h1>

提示

当和 v-for 一起使用时,v-for 的优先级比 v-if 更高。

v-else

  • 预期:any
  • 详细:为 v-if 或者 v-else-if 添加“else 块”。
  • 示例:
html
<div v-if="Math.random() > 0.5">
  Now you see me
</div>
<div v-else>
  Now you don't
</div>

v-else-if

  • 预期:any
  • 详细:为 v-if 或者 v-else-if 添加“else if 块”。
  • 示例:
html
<div v-if="type === 'A'">
  A
</div>
<div v-else-if="type === 'B'">
  B
</div>
<div v-else-if="type === 'C'">
  C
</div>
<div v-else>
  Not A/B/C
</div>

v-for

  • 预期:Array | Object | number | string | Iterable<*>
  • 详细:基于源数组或对象的键名或索引去循环渲染一个元素或一组元素。
  • 示例:
html
<div v-for="item in items"></div> 
<div v-for="(item, index) in items"></div>
<div v-for="(value, name) in object"></div>
<div v-for="(value, name, index) in object"></div>
<div v-for="n in 10"></div>

v-on

  • 预期:Function | Inline Statement | Object
  • 详细:监听 DOM 事件,并在触发时运行相应的 JavaScript。
  • 示例:
html
<button v-on:click="doThis"></button>
<button v-on:click="doThat('hello', $event)"></button>

v-bind

  • 预期:any (with argument) | Object (without argument)
  • 详细:动态地绑定一个或多个特性,或一个组件 prop 到表达式。
  • 示例:
html
<button v-bind:disabled="isButtonDisabled">Button</button>

v-model

  • 预期:随表单控件类型不同而不同。
  • 详细:在表单控件或者组件上创建双向绑定。
  • 示例:
html
<input v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>

v-pre

  • 没有预期,也不会显示在 DOM 中。
  • 详细:跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。跳过大量没有指令的节点会加快编译。
  • 示例:
html
<span v-pre>{{ this will not be compiled }}</span>

v-cloak

  • 没有预期,也不会显示在 DOM 中。
  • 详细:这个指令保持在元素上直到关联实例结束编译。和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。
  • 示例:
html
<div v-cloak>
  {{ message }}
</div>

v-once

  • 没有预期,也不会显示在 DOM 中。
  • 详细:只渲染元素和组件一次。随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能。
  • 示例:
html
<span v-once>This will never change: {{msg}}</span>

基于 MIT 许可发布