我正在尝试获取数据并在发送到 firebase 后立即显示该数据。但是,我只是在渲染或重新加载页面后获取已知数据。我想在发送数据后显示/显示数据,而无需重新加载页面。我尝试使用已安装和创建的生命周期 Hook 发出 get 请求,但同样,仅显示组件是否重新渲染或重新加载。
Đây là mã của tôi:
- {{u.username}}
- {{u.email}}
export default {
data(){
return{
user:{
username:'',
email:''
},
users:[]
}
},
methods:{
sendData(){
this.$http.post('FIREBASE-LINK/data.json', this.user).then(response=>{
console.log(response)
}).catch(err=>{
console.log(err)
})
}
},
mounted(){
this.$http.get('FIREBASE-LINK/data.json').then(resp=>{
this.users = resp.body
}).catch(err=>{
console.log(err)
})
}
}
mounted
,顾名思义,仅在组件创建期间调用(Vue.js API 文档说“在实例刚刚挂载后调用,其中 el 被新创建的 vm 替换”。 $el”)。由于您希望在将数据发送到数据库后显示数据,因此您的函数调用应该在 Firebase 代码完成后立即执行。
methods:{
sendData(){
this.$http.post('FIREBASE-LINK/data.json', this.user).then(response=>{
console.log(response)
this.getData()
}).catch(err=>{
console.log(err)
})
},
getData: function () {
this.$http.get('FIREBASE-LINK/data.json').then(resp=>{
this.users = resp.body
}).catch(err=>{
console.log(err)
})
}
}
Tôi là một lập trình viên xuất sắc, rất giỏi!