美文网首页
Vue监视数据的变化:$watch

Vue监视数据的变化:$watch

作者: 念念碎平安夜 | 来源:发表于2019-07-27 23:56 被阅读0次

    话不多说直接贴代码,输入新的name值,对name进行监听

    方式一:

    <div id="itany">
        <input type="text" v-model="name">
        <h3>{{name}}</h3>
    </div>
    <script>
        var vm = new Vue({
            el: '#itany',
            data: {
                name: 'zhang',
            },
        });
        //方式1:使用vue实例提供的$watch()方法
        vm.$watch('name', function(newValue, oldValue) {
            console.log('name被修改啦,原值:' + oldValue + ',新值:' + newValue);
        });
    </script>
    

    方式二:

    <div id="itany">
        <input type="text" v-model="age">
        <h3>{{age}}</h3>
    </div>
    <script>
        var vm = new Vue({
            el: '#itany',
            data: {
                age: 23,
            },
            watch: { //方式2:使用vue实例提供的watch选项
                age: (newValue, oldValue) = > {
                    console.log('age被修改啦,原值:' + oldValue + ',新值:' + newValue);
                },
            }
        });
    </script>
    

    对对象进行监视

    <div id="itany">
        <input type="text" v-model="user.name">
        <h3>{{user.name}}</h3>
    </div>
    <script>
        var vm = new Vue({
            el: '#itany',
            data: {
                user: {
                    id: 1001,
                    name: 'alice'
                }
            },
            watch: {
                user: {
                    handler: (newValue, oldValue) = > {
                        console.log('user被修改啦,原值:' + oldValue.name + ',新值:' + newValue.name);
                    },
                    deep: true //深度监视,当对象中的属性发生变化时也会监视
                }
            }
        });
    </script>
    

    相关文章

      网友评论

          本文标题:Vue监视数据的变化:$watch

          本文链接:https://www.haomeiwen.com/subject/rjvyrctx.html