VUE框架使用v-if实现条件渲染代替watch监视属性实现动态变化------VUE框架

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <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">
        <h1>{{msg}}</h1>
        <!-- 这是压根就没有渲染,不是css隐藏 -->
        <button @click="addValue()">按下修改图片</button>
        <h1>{{value}}</h1>
        <img v-if="value % 2 === 0" height="100px" src="../Pic/1.png">
        <!-- 为了提高效率,可以使用v-else -->
        <!-- <img v-if="value % 2 != 0" height="100px" src="../Pic/2.png"> -->
        <!-- 这样效率高的多,不用再次运算一遍了 -->
        <img v-else height="100px" src="../Pic/2.png">
        <br>
        <input type="number" v-model="temp"/>
        <h1>{{warn}}</h1>
        <br>
        <h1 v-if="temp <= 10">寒冷</h1>
        <h1 v-if="temp > 10 && temp <= 25">凉爽</h1>
        <h1 v-if="temp > 25">炎热</h1>
        <!-- 简写方法,但是这样写,中间不能断开 -->
        <h1 v-if="temp <= 10">寒冷</h1>
        <h1 v-else-if="temp <= 25">凉爽</h1>
        <h1 v-else>炎热</h1>
    </div>
    <script>
        const vm = new Vue({
            el : "#app",
            data : {
                msg : "Hello",
                value : 1,
                temp : 0,
                warn : ""
            },
            methods : {
                addValue()
                {
                    this.value++;
                }
            },
            watch : {
                temp : {
                    immediate : true,
                    deep : true,
                    handler(newValue,oldValue)
                    {
                        if(newValue <= 10)
                        {
                            this.warn = "寒冷";
                        }
                        else if(newValue <= 25 && newValue > 10)
                        {
                            this.warn = "凉爽";
                        }
                        else if(newValue > 25)
                        {
                            this.warn = "炎热";
                        }
                    }
                }
            }
        });
    </script>
</body>
</html>

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <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">

        <h1>{{msg}}</h1>

        <!-- 这是压根就没有渲染,不是css隐藏 -->

        <button @click="addValue()">按下修改图片</button>

        <h1>{{value}}</h1>

        <img v-if="value % 2 === 0" height="100px" src="../Pic/1.png">

        <!-- 为了提高效率,可以使用v-else -->

        <!-- <img v-if="value % 2 != 0" height="100px" src="../Pic/2.png"> -->

        <!-- 这样效率高的多,不用再次运算一遍了 -->

        <img v-else height="100px" src="../Pic/2.png">

        <br>

        <input type="number" v-model="temp"/>

        <h1>{{warn}}</h1>

        <br>

        <h1 v-if="temp <= 10">寒冷</h1>

        <h1 v-if="temp > 10 && temp <= 25">凉爽</h1>

        <h1 v-if="temp > 25">炎热</h1>

        <!-- 简写方法,但是这样写,中间不能断开 -->

        <h1 v-if="temp <= 10">寒冷</h1>

        <h1 v-else-if="temp <= 25">凉爽</h1>

        <h1 v-else>炎热</h1>

    </div>

    <script>

        const vm = new Vue({

            el : "#app",

            data : {

                msg : "Hello",

                value : 1,

                temp : 0,

                warn : ""

            },

            methods : {

                addValue()

                {

                    this.value++;

                }

            },

            watch : {

                temp : {

                    immediate : true,

                    deep : true,

                    handler(newValue,oldValue)

                    {

                        if(newValue <= 10)

                        {

                            this.warn = "寒冷";

                        }

                        else if(newValue <= 25 && newValue > 10)

                        {

                            this.warn = "凉爽";

                        }

                        else if(newValue > 25)

                        {

                            this.warn = "炎热";

                        }

                    }

                }

            }

        });

    </script>

</body>

</html>

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值