生命周期钩子,用于从Vue组件中的Firebase检索数据



我有一个Vue 2组件,它使用vefire声明式地与Firebase实时数据库绑定:

import { db } from '../firebase/db'
export default {
data: () => ({
cats: []
}),
firebase: {
cats: db.ref('cats')
},
mounted: function() {
// loop over this.cats
}
}

我希望组件在挂载时循环cats属性。问题是,当它被挂载时,它还没有从数据库中检索到猫。有什么简单的方法可以钩住这个点吗?或者我是否必须告别这种简洁的获取数据的方式,并在mounted中完成所有操作?

正如vuefire文档中关于声明性绑定的解释:

firebase选项中提供的任何数据库参考都将被绑定创建(在Vue的created钩子之后)到组件

所以你实际上不需要在mounted钩子中添加任何东西。如果你想在cats数组被填充时触发一个动作,你可以使用标准的Vue.jswatch.


如果你不想订阅RTDBcatsref中的实时变化(即在vuefire词汇表中做绑定),并且只想在组件挂载时读取一次cats节点数据,你应该使用标准的Firebase JS SDK,正如vuefire文档中解释的那样。