返回

Vue 模板语法——文本插值和常用指令(2)

前端

Vue 模板语法:文本插值和常用指令

文本插值

文本插值允许我们在模板中直接输出 JavaScript 表达式的值。语法很简单,在表达式前后加上花括号即可。例如,{{ name }} 会将 name 变量的值输出到 <h1> 标签中。

v-once 指令

v-once 指令指定元素或组件只渲染一次。即使数据发生变化,元素和子节点仍被视为静态内容并被缓存,从而提高渲染性能。

<ul>
  <li v-once>{{ item.name }}</li>
  <li>{{ item.price }}</li>
</ul>

v-for 指令

v-for 指令用于循环遍历数组或对象。语法如下:

<template v-for="item in items">
  ...
</template>

item 是循环变量,items 是要遍历的数据。例如,以下代码遍历一个数组并渲染列表:

<ul>
  <li v-for="item in items">{{ item }}</li>
</ul>

v-if 和 v-else-if 指令

v-ifv-else-if 指令根据条件渲染元素。v-if 指令的语法如下:

<template v-if="condition">
  ...
</template>

如果 conditiontrue,则渲染循环体;否则不渲染。v-else-if 指令类似,但只有在 v-if 指令条件为 false 时才渲染循环体。

<div>
  <template v-if="user.loggedIn">
    <h1>欢迎,{{ user.name }}</h1>
  </template>
  <template v-else-if="user.guest">
    <h1>欢迎,访客!</h1>
  </template>
  <template v-else>
    <h1>请登录</h1>
  </template>
</div>

v-show 指令

v-show 指令根据条件显示或隐藏元素。语法如下:

<template v-show="condition">
  ...
</template>

如果 conditiontrue,则显示循环体;否则隐藏循环体。与 v-if 指令不同,v-show 指令不会影响 DOM 结构,而是仅更改 display 属性。

v-cloak 指令

v-cloak 指令在模板渲染之前隐藏元素。它防止未经编译的模板代码在用户面前显示。语法如下:

<template v-cloak>
  ...
</template>

结论

本文介绍了 Vue 模板语法中的文本插值以及 v-once、v-for、v-if、v-else-if、v-show 和 v-cloak 等常用指令。这些指令可以帮助我们创建更强大和动态的 Vue 应用程序。

常见问题解答

  1. 文本插值和 v-once 指令有什么区别?
    文本插值直接输出表达式值,而 v-once 指令将元素视为静态内容并只渲染一次,提高性能。

  2. v-for 指令如何处理数组和对象?
    v-for 指令可以遍历数组和对象,并将每个元素或键值对作为循环变量。

  3. v-ifv-else-if 指令的优先级如何?
    v-if 指令优先级更高,只有当 v-if 指令条件为 false 时,v-else-if 指令才有效。

  4. v-showv-if 指令哪个性能更好?
    v-show 指令性能更好,因为它不会影响 DOM 结构,只更改 display 属性。

  5. v-cloak 指令有什么好处?
    v-cloak 指令防止未经编译的模板代码在用户面前显示,改善用户体验。