【问题标题】:Vuejs: How to get computed property in created hookVuejs:如何在创建的钩子中获取计算属性
【发布时间】:2018-10-05 08:47:19
【问题描述】:

是否可以在创建的钩子中获取计算的属性值?我当前的实现不起作用。我的理解是首先调用创建的钩子,这将调用我的异步方法,并且异步方法需要计算属性,但是当计算属性可用时,创建的钩子已经使用“未定义”参数执行。

请建议我如何使计算属性可用于创建的钩子方法。

created() {
        this.fetchPropertyOptions();
},
computed: {
    propertyList() {
        return this.data.value;
    },
},
methods: {
    async fetchPropertyOptions() {
        this.propertyOptionsMap = await api.GetOptions(this.propertyList);
    },
}

【问题讨论】:

  • this.data.value 应该是this.value
  • 尝试使用mounted() 而不是created()?
  • @zubairm - 它适用于我:codepen.io/JosephSilber/pen/erZqYW
  • 感谢大家的帮助,在物业上设置观察者对我有用
  • 谁能建议为什么我的问题被否决:(

标签: vue.js computed-properties


【解决方案1】:

Vue 组件的创建经历了不同的生命周期。文档的lifecycle diagram section 中有一个很好的图表。

从上到下阅读上述图表,您会注意到您在示例中使用的 created 挂钩。在Init injections & reactivity 之后直接调用。这是例如props, data & computed 被初始化。紧接着,created 生命周期方法被调用。

作为一个实际示例,他的answer 中链接的codepen Joseph Silber 显示了created 方法中计算属性的成功使用。

事实上,唯一不能使用injections & reactivity的生命周期方法是beforeCreated。所有其他生命周期方法,例如mountedupdated 甚至 beforeDestroydestroyed 都可以访问它。

【讨论】:

  • 我单步执行了代码并在第一次计算调用之前创建了被调用的方法。所以我不确定你说的是否正确。
猜你喜欢
  • 2019-11-07
  • 2019-03-31
  • 1970-01-01
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多