Vue条件渲染

本文详细介绍了Vue.js中的条件渲染,包括v-if和v-show的用法、适用场景及其特点。v-if适合切换频率低的情况,不展示的DOM会直接移除;v-show适用于切换频繁的场景,元素不会被移除,仅通过样式隐藏。此外,还展示了v-else-if和v-else的使用,以及如何在实际案例中应用v-if和v-show。

条件渲染:

                    1.v-if

                        写法:

                            (1).v-if="表达式" 

                            (2).v-else-if="表达式"

                            (3).v-else="表达式"

                        适用于:切换频率较低的场景。

                        特点:不展示的DOM元素直接被移除。

                        注意:v-if可以和:v-else-if、v-else一起使用,但要求结构不能被“打断”。

                    2.v-show

                        写法:v-show="表达式"

                        适用于:切换频率较高的场景。

                        特点:不展示的DOM元素未被移除,仅仅是使用样式隐藏掉

                    3.备注:使用v-if的时,元素可能无法获取到,而使用v-show一定可以获取到。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <div id="app">
        <p v-if="false">hello world</p>
    </div>

    <script>
        Vue.config.productionTip = false
        
        const vm = new Vue({
            el: '#app'
        })
    </script>
</body>
</html>

使用v-if渲染<p>元素 if里面的值为 false 条件不成立 所以元素不渲染在页面中

在v-if语句中值可以是表达式 和 原生if的用法相似

<div id="app">
        <p v-if="1 === 1">hello world</p>
    </div>

满足条件渲染元素

v-else-if 和 v-else 

在条件判断中还有v-else-if 和 v-else 它们的用法与原生的if else大致相同 

在if表达式中的条件不成立 则继续判断else后面的条件 满足条件之后执行渲染

<body>
    <div id="app">
        <!-- 根据fruits的值 判断水果的种类  -->
        <p v-if="fruits === 'apple'">苹果</p>
        <p v-else-if="fruits === 'banana'">香蕉</p>
        <p v-else>没有匹配的水果</p>
    </div>

    <script>
        Vue.config.productionTip = false
        
        const vm = new Vue({
            el: '#app',
            data: {
                fruits: 'banana'
            }
        })
    </script>
</body>

 在else-if中 找到了成立的表达式渲染在了页面中

v-show

v-sohw与v-if的用法基本相同 他们的区别是  v-if条件不满足就不渲染元素 而v-show是渲染了所有元素 根条件来控制元素是否显示 

接下来我们使用v-show来演示一下上面的案例

<body>
    <div id="app">
        <!-- 根据fruits的值 判断水果的种类  -->
        <p v-show="fruits === 'apple'">苹果</p>
        <p v-show="fruits === 'banana'">香蕉</p>
        <p v-else>没有匹配的水果</p>
    </div>

    <script>
        Vue.config.productionTip = false
        
        const vm = new Vue({
            el: '#app',
            data: {
                fruits: 'banana'
            }
        })
    </script>
</body>

 由此可见在v-show中不满足条件的元素也会被渲染到DOM元素中只是不显示元素,满足条件的处于显示状态

v-if控制的是dom的渲染 v-show是看dom是否展示

如果条件判断使用的比较频繁 建议使用v-show 可以提交页面性能

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李公子丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值