停止vue js watch属性监视子对象

时间:2019-01-02 16:36:50

标签: javascript vue.js

嗨,这是我的代码,

        var vm = new Vue({
                el: '#el',
                data: {
                    input: {
                        sorting: "",
                        brand: null,
                        model: null,
                        country: "all",
                        cap: "",
                        radius: ""         
                    }
                },
                watch: {
                    input: {
                        handler(newInput) {

                        },
                        deep: true
                    }  
                }
            });

在这里,我正在观察天气输入对象的变化。但是我只需要观看一些仅输入对象的项目。例如,如果input.country发生变化,我需要做些事情,但当input.brand发生变化时则不需要做。不幸的是,我的代码很复杂,无法从输入对象中取出物品。

2 个答案:

答案 0 :(得分:0)

只需注意您的需求:

            watch: {
                'input.country': {
                    handler(newCountry) {

                    }
                }  
            }

答案 1 :(得分:0)

声明一个以computed为目标的this.item.country值:

computed: {
    itemCountry() {
        return this.item.country;
    }
}

并观看此新的计算值:

watch: {
    itemCountry: {
        immediate: true,
        handler(newInput) {
            // do your stuff
        }
    }
}