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
。所有其他生命周期方法,例如mounted
、updated
甚至 beforeDestroy
和 destroyed
都可以访问它。
【讨论】:
我单步执行了代码并在第一次计算调用之前创建了被调用的方法。所以我不确定你说的是否正确。以上是关于Vuejs:如何在创建的钩子中获取计算属性的主要内容,如果未能解决你的问题,请参考以下文章