vue如何监听

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue如何监听相关的知识,希望对你有一定的参考价值。

参考技术A <!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></title>

</head>

<body>

    <div id="app">

        <h1 @click="add">msg</h1>

        <!-- <h1 @click="obj.a++">obj.a</h1>

        <h1 @click="obj.b++">obj.b</h1> -->

        <h1>obj</h1>

    </div>

    <script src="./vue2.6.14.js"></script>

    <script>

        new Vue(

            el:"#app",

            data:function ()

                return

                    msg:'你好',

                    obj:

                        a:0,

                        b:0

                   

               

            ,

            /* 因为vue不是操作dom了,视图的变化是根据数据来的 */

            /* 对数据进行实时监控的方法 监听器 */

            watch:

                /* handler是数据msg 发生变化的时候触发的方法 */

                msg:

                    immediate:true,

                    handler:function(newVal,oldVal)

                        console.log('新值:'+newVal);

                        console.log('旧值:'+oldVal);

                   

               

                /* 对象里面的key 最传统的方式其实就是要加引号 */

                // 'obj.a':

                //     immediate:true,

                //     handler:function(newV,oldV)

                //         console.log('a',newV,oldV);

                //    

                // ,

                // 'obj.b':

                //     immediate:true,

                //     handler:function(newV,oldV)

                //         console.log('b',newV,oldV);

                //    

                // ,

                // obj:

                //     immediate:true,

                //     handler:function(newV,oldV)

                    /* newV.a会报错使用 newV是一个变量 */

                //         console.log('obj',newV['a'],oldV['b']);

                //     ,

                //     /* 深度监听对象里面的属性值 */

                //     /* 深度监听 对象里面的值每次发生变化都会触发handler方法 */

                //     /* 因为对象是引用数据类型,所以

                //     每次值发生变化,对应的内存地址并没有发生变化,所以newV

                //     和oldV都是同一个 */

                //     deep:true

                //

            ,

            methods:

                add()

                    /* this.msg = 'hello' */

                   /*  console.log(this.obj); */

                   /*  this.obj.c = '123' */

                  /*  this.$set(this.obj,'c','123') */

                  /*   delete this.obj.a */

                 /*  this.$delete(this.obj,'a') */

               

           

        )

        /* 你写一个定时器 也页面有个数字 会一直加1  在加1的时候触发一个事件

        打印余额加1 */

    </script>

</body>

</html>

以上是关于vue如何监听的主要内容,如果未能解决你的问题,请参考以下文章

如何监听JS数组的变化

vue中如何深度监听一个对象?

vue项目监听滑块并移除。

vue 如何在循环中 "监听" 的绑定v-model数据

【技术】Vue 父组件如何监听子组件的生命周期

vue项目监听安卓手机物理返回键