Vue——条件渲染(v-if ,v-show)

v-if ,v-else

在 template 元素上使用 v-if , v-else 条件渲染分组

因为 v-if 是一个指令,所以必须将它添加到一个元素上。但是如果想切换多个元素呢?此时可以把一个 元素当做不可见的包裹元素,并在上面使用 v-if。最终的渲染结果将不包含 元素。

 <div id="ss">
        <button @click="show=!show">切换</button>
        <template v-if="show">
            <div>注册</div>
        </template>
        <template v-else="!show">
            <div>登录</div>
        </template>
    </div>
    <script>
        let vm = new Vue({
            el: "#ss",
            data: {
                show: true
            },
        })
    </script>

v-show

带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS 属性 display。

<div id="ss">
    <button @click="show=!show">切换</button>
    <div v-show="show">
        <div>注册</div>
    </div>
    <div v-show="!show">
        <div>登录</div>
    </div>
</div>
<script>
    let vm = new Vue({
        el: "#ss",
        data: {
            show: true
        },
    })
</script>

v-if与v-show的区别

相同点:v-if与v-show都可以动态控制dom元素显示隐藏。

不同点:v-if显示隐藏是将dom元素整个添加或删除,而v-show隐藏则是为该元素添加css–display:none,dom元素还在。

注意:
当一个元素默认在css中加了display:none属性,这时通过v-if,v-show修改为true是无法让元素显示的。原因是显示隐藏切换,只是会修改element style为display:""或者display:none,并不会覆盖掉或修改已存在的css属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值