vue的method和watch执行顺序怎么调整

vue2中的添加了method和watch,method方法调用需要用到watch之后修改的数据,现在直接调用方法参数watch还没有执行.

data:{
    obj:{count:0},
    abc:{count:0},
},
methods:{
    add:function(){
        this.obj.count=1;
        this.action();
    },
    action:function(){
        console.log(this.abc.count);
    }
},
watch:{
    obj:{
        handle:function(value){
            abc.count=value
        },
        deep:true
    }
}

代码类似上面的,data中两个对象不能通过computed关联.
add方法中调用action的时候watch还没有执行,打印出来的abc.count还是0.
怎么让方法在watch完成之后再执行呢.

阅读 11.4k
2 个回答
data:{
    obj:{count:0},
    abc:{count:0},
},
methods:{
    add:function(){
        this.obj.count=1;
    },
    action:function(){
        console.log(this.abc.count);
    }
},
watch:{
    obj:{
        handle:function(value){
            abc.count=value
            this.action();
        },
        deep:true
    }
}

setTimeout(() => this.action(), 0)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题