首页 > 解决方案 > 在“创建”值之后创建的 vue2“计算”值

问题描述

我很困惑,因为当我搜索谷歌并发现文章都告诉我在 vue 的生命周期中,“计算”在“创建”之前,但是在我的代码中,我在结果 1 之前得到了结果 2,如何解决这个问题?

computed: {
    options() {
        const imgData = {
          img: this.modifyData,
          fixedNumber: this.ratio
        }
        console.log(1)
        return Object.assign({}, this.defaultOptions, imgData)
    }
},
watch: {
    modifyData(nval) {
        // nothing to do yet
    }
},
created() {
    console.log(2)
},
  ...

更新:'this.modifyData' 来自 axios.get(...) ,所以一开始它是未定义的,虽然我已经解决了这个问题,但仍然困惑为什么结果 2 在结果 1 之前?

标签: vuejs2

解决方案


当 vue 实例初始化时,created函数运行。这就是你看到的原因2。计算属性的值稍后注销的原因1是计算属性是惰性的,这意味着在需要它们之前不会创建它们的值。


推荐阅读