Vuejs:如何在创建的钩子中获取计算属性

Posted

技术标签:

【中文标题】Vuejs:如何在创建的钩子中获取计算属性【英文标题】:Vuejs: How to get computed property in created hook 【发布时间】: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 感谢大家的帮助,在物业上设置观察者对我有用 谁能建议为什么我的问题被否决:( 【参考方案1】:

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

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

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

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

【讨论】:

我单步执行了代码并在第一次计算调用之前创建了被调用的方法。所以我不确定你说的是否正确。

以上是关于Vuejs:如何在创建的钩子中获取计算属性的主要内容,如果未能解决你的问题,请参考以下文章

Vuejs2:数组更改时如何重新渲染数组计算属性

VueJS 中的计算属性

VueJS 动态获取计算属性

在 vueJs 的方法中使用计算属性

Vue生命周期,计算属性方法侦听器

Vuejs2 - 如何将两个数组中的元素与计算属性进行比较?