我有一个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
.
如果你不想订阅RTDBcats
ref中的实时变化(即在vuefire词汇表中做绑定),并且只想在组件挂载时读取一次cats
节点数据,你应该使用标准的Firebase JS SDK,正如vuefire文档中解释的那样。