当前位置: 首页 > 编程笔记 >

Vue.js v-if / v-else

邵弘义
2023-03-14
本文向大家介绍Vue.js v-if / v-else,包括了Vue.js v-if / v-else的使用技巧和注意事项,需要的朋友参考一下

示例

假设我们有一个Vue.js实例定义为:

var vm = new Vue({
    el: '#example',
    data: {
        a: true,
        b: false
    }
});

您可以通过包含v-if指令有条件地呈现任何html元素;包含v-if的元素仅在条件评估为true时才会呈现:

<!-- will render 'The condition is true' into the DOM -->
<div id="example">
    <h1 v-if="a">The condition is true</h1>
</div>

<h1>在这种情况下,该元素将呈现,因为变量'a'为true。v-if可以与任何计算结果为布尔值的表达式,计算属性或函数一起使用:

<div v-if="0 === 1">                  false; won't render</div>
<div v-if="typeof(5) === 'number'">   true; will render</div>

您可以使用一个template元素将多个元素归为一个条件:

<!-- in this case, nothing will be rendered except for the containing 'div' -->
<div id="example">
    <template v-if="b">
        <h1>Heading</h1>
        <p>Paragraph 1</p>
        <p>Paragraph 2</p>
    </template>
</div>

使用时v-if,还可以选择将反条件与v-else指令集成在一起。仅当先前v-if的条件为false时,才显示元素内包含的内容。请注意,这意味着带有v-else的元素必须立即出现在带有v-if的元素之后。

<!-- will render only 'ELSE' -->
<div id="example">
    <h1 v-if="b">IF</h1>
    <h1 v-else="a">ELSE</h1>
</div>

就像v-if一样,使用v-else也可以将多个html元素组合在一起<template>:

<div v-if="'a' === 'b'"> This will never be rendered. </div>
<template v-else>
    <ul>
      <li> You can also use templates with v-else. </li>
      <li> All of the content within the template </li>
      <li> will be rendered. </li>
    </ul>
</template>
           

 类似资料:
  • 预期:any 用法: 根据表达式的值的真假条件渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。如果元素是 <template> ,将提出它的内容作为条件块。 当条件变化时该指令触发过渡效果。 当和 v-if 一起使用时,v-for 的优先级比 v-if 更高。

  • 在字符串模板中,比如 Handlebars,我们得像这样写一个条件块: <!-- Handlebars 模板 --> {{#if ok}} <h1>Yes</h1> {{/if}} 在 Vue 中,我们使用v-if指令实现同样的功能: <h1 v-if="ok">Yes</h1> 也可以用v-else添加一个“else 块”: <h1 v-if="ok">Yes</h1> <h1 v

  • 2.1.0 新增 类型:any 限制:前一兄弟元素必须有 v-if 或 v-else-if。 用法:/li> 表示 v-if 的 “else if 块”。可以链式调用。 <div v-if="type === 'A'"> A </div> <div v-else-if="type === 'B'"> B </div> <div v-else-if="type === 'C'"> C

  • 当它们处于同一节点,v-for的优先级比v-if更高,这意味着v-if将分别重复运行于每个v-for循环中。当你想为仅有的一些项渲染节点时,这种优先级的机制会十分有用,如下: <li v-for="todo in todos" v-if="!todo.isComplete"> {{ todo }} </li> 上面的代码只传递了未完成的 todos。 而如果你的目的是有条件地跳过循环的执行

  • v-if是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。 v-if也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。 相比之下,v-show就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。 一般来说,v-if有更高的切换开销,而v-show有更高的初始渲染开销。因

  • 本文向大家介绍对vue v-if v-else-if v-else 的简单使用详解,包括了对vue v-if v-else-if v-else 的简单使用详解的使用技巧和注意事项,需要的朋友参考一下 首先vue.js请注意 2.1.0版本以上方可使用v-else-if 页面展示如下: vue.js下载:https://github.com/vuejs/vue 以上这篇对vue v-if v-els