首页 > 技术文章 > Vue:条件判断(v-if、v-show)

zhai1997 2020-12-16 22:30 原文

1、v-if

(1)v-if运用

<div id="app">
 <h2 v-if="true">{{message}}</h2>
</div>

只有在为true的时候才会显示数据

(2)v-if与v-else

<div id="app">
 <h2 v-if="false">{{message}}</h2>
  <h1 v-else>hello</h1>
</div>

v-if为true的时候执行if,否则,执行else

 (3)案例:v-if与v-else的应用

<body>
<div id="app">
    <span v-if="isUser">
      <label for="username">用户账号</label>
      <input type="text" id="username" placeholder="用户账号">
    </span>
    <span v-else>
        <label for="email">用户邮箱</label>
        <input type="text" id="email" placeholder="用户邮箱">
    </span>
   <button @click="isUser=!isUser">切换类型</button>
</div>
<script src="../js/vue.js"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            isUser: true
        }
    })
</script>
</body>

 

 点击切换类型后可以切换显示内容,这个时候会存在input标签复用的问题(切换后输入框中的内容没有改变,这是虚拟DOM,尽可能地复用已经存在的元素,而不是新建一个元素,可以提升性能),可以增加key属性,当key一样的时候就会保留内容,不一样的时候就不会保留

 

2、v-show

<body>
<div id="app">
  <h2 v-if="isShow" id="aaa">{{message}}</h2>
  <h2 v-show="isShow" id="bbb">{{message}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            message: 'hello',
            isShow: true
        }
    })
</script>
</body>
  • 与v-if的区别

v-if:当条件为false时, 包含v-if指令的元素, 不会存在dom中

v-show: 当条件为false时, v-show只是给我们的元素添加一个行内样式: display: none

当显示与隐藏需要频繁切换的时候使用v-show,切换次数较少的时候使用v-if

 

推荐阅读