updated: function() {
console.log("updated");
this.$emit("render-vue", this.$el.offsetHeight);
},
这足够好...但是在我的应用中,props
得到更新(我不在乎),然后有一个fetch()
更新了data
,导致其他DOM呈现。
所以,这意味着我连续获得了 2 个“更新”事件!
基本上,我只希望updated
在$emit
被完全更新并且DOM完成之后执行data
。
当前,$emit
连续发生2次,这无济于事-IT DOM更新为props
,然后在{{1} }在updated
之后更新。
现在,我可以data
-尝试了。问题在于,fetch()
将在所有DOM watch
之前触发,从而以 argument的形式发送错误的信息。
这几乎就像我需要$emit
的特定部分updated
...然后,只有这样,watch
才发送data
。
对于其他上下文,没有 children -这是一个 child 组件。
我可以可能使用updated
使它正常工作...但是,拜托!太草率了!
答案 0 :(得分:1)
在获取数据的代码块中,设置一个属性以指示有新数据可用
fetch(url)
.then(() => {
// whatever you're doing with the data
this.newData = true;
});
在updated
钩子中检查此状态变量
updated() {
if (this.newData) {
this.$emit("render-vue", this.$el.offsetHeight);
this.newData = false;
}
}