• vue监视之深度监视


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <script type="text/javascript" src="../js/vue.js"></script>
    
        <title>监视属性深度监视</title>
    </head>
    <body>
        <!-- vue中的watch 默认不监视对象属性中的内部值的改变
            配置deep:true可以监视对象内部值的改变(多层)
    
            备注:
                vue自身可以检测对象内部值改变,但是vue提供的watch默认不可以
                使用watch需要根据对象的结构决定是否采用深度监视
    
        -->
        <div id="root">
            <h1>今天天气{{inFo}}</h1>
            <!-- 绑定事件的时候,事件 @xxx="yyy",yyy可以写一些简单的语句 -->
            <!-- <button @click="isHot=!isHot">切换天气</button> -->
            <button @click="chang">切换天气</button
                ><br>
            <h1>a的值是{{numbers.a}}</h1>    
            <button @click="numbers.a++">点我a+1</button>
                <br>
            <h1>b的值是{{numbers.b}}</h1>
            <button @click="numbers.b++">点我b+1</button>
    
        </div>
        <script>
            const vm=new Vue({
                el:"#root",
                data:{
                    isHot:true,
                    numbers:{
                        a:1,
                        b:1
                    }
    
                },
                methods: {
                    chang(){
                        this.isHot=!this.isHot;
                    }
                },
                computed:{
                    inFo(){
                        return this.isHot ? '炎热' : '凉爽';
                    }
                },
                watch:{
                    isHot:{
                        // immediate:true,//初始化时让handler调用一下
                        //handler在isHot发生改变时触发
                        handler(newValue,oldValue){
                            console.log(newValue,oldValue)
                        }
                    },
                    /* //监视多级结构中某个属性的变化
                    "numbers.a":{
                        handler(){
    
                        }
                    } */
                    //监视多级结构中所有属性的变化
                    numbers:{
                        deep:true,
                        handler(){
    
                        }
                    }
    
                }
    
            })
    
            // vm.$watch("isHot",{
            //       // immediate:true,//初始化时让handler调用一下
            //     //handler在isHot发生改变时触发
            //     handler(newValue, oldValue) {
            //         console.log(newValue, oldValue)
            //     }
            // })
        </script>
    </body>
    </html>
  • 相关阅读:
    database使用
    画图工具
    宝塔面板权限不足问题解决
    nginx查看并发数量
    台式机未插入扬声器或者耳机
    键盘出现乱码解决
    lnmp宝塔面板问题
    nginx+mysql双主搭建
    zabbix客户端安装
    java生产条形码
  • 原文地址:https://www.cnblogs.com/xiaobaizitaibai/p/16843435.html
Copyright © 2020-2023  润新知