Vue--v-show和v-if

编程入门 行业动态 更新时间:2024-10-27 18:32:50

v-show和v-if目录

  • v-show和v-if
  • template

v-show和v-if

v-show与v-if的区别就是,v-show如果值为false的时候只是添加了一个样式display:none,而v-if直接标签都没有,相比来说show的话一般应用在需要频繁切换的场合,if一般在一次性场合使用(实际开发过程中,v-if用的比较多),这是因为,v-show只是修改了display,而v-if是不断的在dom里面增加以及删除节点。当然不管是哪个,都可以修改为true或者false来决定是显示还是隐藏。

<div id="testBox">
    <div v-show="isShow">{{name}}</div>
    <button @click="changeShow">显示/隐藏</button>
    <div v-if="isShow">v-if</div>
    <div v-else-if="!isShow">v-else-if</div>
</div>
<script type="text/javascript">
    new Vue({
      el:'#testBox',
      data:{
        name: '野原新之助',
        isShow: true
      },
      methods: {
          changeShow() {
              this.isShow = ! this.isShow;
          }
      },
    })
</script>

注意:
1.v-if以及v-else-if与判断if…else一样的逻辑。
2.同时有多个if,条件都为true也会一起显示。
3.如果条件互斥的话最好用v-if加v-else-if,因为都用v-if会重复判断。
4.还有v-else,也与判断逻辑一致(前面判断都不成立,这里直接v-else,就算加条件也不起作用)。
5.中间不能穿插其他的元素,不然后面的就不执行了,
如下

<button @click="changeShow">显示/隐藏</button>
<div v-if="isShow">v-if</div>
<div></div>
<div v-else-if="!isShow">v-else-if</div>
<div v-else>啥都没有</div>


也报错了,意思就是后面的else…找不到v-if了。

template

用template的好处就是不影响结构。但是只能跟v-if结合使用,不能跟v-show搭配使用。

<div id="testBox">
    <div v-if="isShow">
        <h1>11</h1>
        <h2>22</h2>
        <h3>33</h3>
    </div>
    <template v-if="isShow">
        <h1>44</h1>
        <h2>55</h2>
        <h3>66</h3>
    </template>
</div>
<script type="text/javascript">
    new Vue({
      el:'#testBox',
      data:{
        name: '野原新之助',
        isShow: true
      },
    })
</script>

那么为什么template不能和v-show一起用呢?
因为template是虚拟dom,不会显示在页面上,而v-show是需要对元素进行操作,改变它的display的,没元素就不能操作了。但是v-if只要满足条件就可以显示。

更多推荐

Vue--v-show和v-if

本文发布于:2023-06-13 14:53:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1382914.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Vue   show

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!