排查了一个小时,刚才终于找到导致问题的地方了(但是还是不知道为什么) 原因是我在created里用$set设置了。但是我明明根据console.log来看,created的调用是在watch这里之后的。(**突然懂了!!!** ,log出的this.model并没有固定,getter setter的原因,我在点击(...)时,出现的是点击(...)那一时刻的值,并不是log时的值。vue3的proxy也有这个问题,log出的值只有点(...)后才会固定下来) watch: { xx:{handler(){ console.log('1',_.merge({}, this.model, val)) this.model = _.merge({}, this.model, val); console.log('2',this.model) created() { this.$set(this.model, xxx, xxx); } * * * 我以前试图解决过这个问题,找到个devtool选项让(...)的值自动显示出来,但是目前并没有这种选项。一种替代方案是用JSON.stringify(this.model)。但是要多写几个单词,有点麻烦,这次被这个问题坑了。。。 最近发现右键点在输出的对象上copy object可以起到类似JSON.stringify的作用,比一个个点(...)方便