Vue条件渲染 v-if,v-else-if,v-else,v-show

博客主要介绍了Vue中的v-if和v-show指令。v-if根据表达式布尔值判断是否插入标签,还有v-else和v-else-if配合使用,可通过key值管理可复用元素;v-show根据布尔值判断是否显示标签。二者区别在于,v-if通过删添标签实现显隐,v-show通过设置display属性实现。

1 v-if指令

1.1 v-if:根据表达式的布尔值判断是否插入标签 

v-if指令,当show为true时显示div内容,当show为false时隐藏div内容   
<div id="root">
        <div v-if="show">hello wirld</div>
        <button @click="handle">toggle</button>
        </div>
    <script>
        new Vue({
            el: "#root",
            data:{
                show:true,
            },
            methods:{
              handle: function () {
                  this.show=!this.show;
              }
            }
        })
    </script>

展示

1.2  v-else v-else-if

   v-else紧跟在v-if或v-else-if之后

   v-else-if紧跟在v-if或v-else-if之后

如下例:

<div id="root">
    <div v-if="show===a">This is A</div>
    <div v-else-if="show===b">This is B</div>
    <div v-else>This is others</div>
</div>
<script>
    var vm=new Vue({
        el:root,
        data:{
            show: true
        }
    })
</script>

 结果:

1.3 使用key值管理可复用的元素

以下两个实例展示了不使用key值与使用key值的区别

实例:不使用key值
<div id="root">    
    <div v-if="show">
        用户名: <input type="text">
    </div>
    <div v-else>
        邮箱名: <input type="text">
    </div>
    <div>
    <button @click="handleClick"> 切换</button>
    </div>
</div>
<script>
    var vm=new Vue({
        el:root,
        data:{
            show: true
        },
        methods:{
            handleClick: function () {
               this.show=!this.show
            }
        }
    })
</script>

 结果展示:

 

实例:使用key值 
<div id="root">   
    <div v-if="show">
        用户名: <input type="text" key="username">
    </div>
    <div v-else>
        邮箱名: <input type="text" key="email">
    </div>
    <div>
    <button @click="handleClick"> 切换</button>
    </div>
</div>
<script>
    var vm=new Vue({
        el:root,
        data:{
            show: true
        },
        methods:{
            handleClick: function () {
               this.show=!this.show
            }
        }
    })
</script>

结果展示: 

 

2、v-show  

 根据表达式的布尔值判断是否显示标签 

v-show指令
<div id="root">
        <div v-show="show">hello wirld</div>
        <button @click="handle">toggle</button>       
    </div>
    <script>
        new Vue({
            el: "#root",
            data:{
                show:true,
             },
            methods:{
              handle: function () {
                  this.show=!this.show;
              }
            }
        })
    </script>

 

 

3、v-if和v-show的区别:

v- else-if

v-else

  1. v-if通过删除和添加标签实现标签的隐藏和显示
  2. v-show通过设置标签的display属性来实现标签的隐藏和显示

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值