VueJ在触发后立即运行监视器处理程序

1tuwyuhd  于 2023-01-31  发布在  Vue.js
关注(0)|答案(1)|浏览(116)

示例:

export default {
    data() {
        return {
            data1: 1,
            data2: 2
        }
    },
    mounted() {
        this.data1 = 2
        console.log(this.data2)
    },
    watch: {
        data1: {
            handler(newData1) {
                this.data2 = newData1 * 3
            }
        }
    }
}

预期行为:浏览器将数字6写入控制台
当前行为:浏览器将数字2写入控制台
在这个例子中,我尝试在修改data1值之后写入修改的data2值,但是它在监视器处理程序修改它之前写入data2值。有没有办法在触发后立即运行监视器处理程序?我知道我可以在这个例子中使用计算属性,但是我的项目中需要数据。
我尝试将watcher immediatly属性设置为true,但不起作用。

vhmi4jdf

vhmi4jdf1#

我不知道你的代码的目的是什么,但下面将工作

mounted() {
    this.data1 = 2
    this.$nextTick(() => {
      console.log(this.data2)
    })
  },

相关问题