嗨,我正试图使它,以便当用户打开一个页面,它不会打开,直到数据从服务器成功检索,使它不会出现后0.5秒左右,用户进入后。
要做到这一点,我读到我需要使用BeforeRouteEnter,但我很难找到有关如何正确使用它的信息,特别是等待我的REST API完成其请求。
下面是我希望在路由到新组件之前等待完成的方法:
async getThread() {
const response = await postsService.fetchOneThread({
id: this.blockId,
topic: this.topicId,
thread: this.postId
});
this.thread = response.data;
}
因此,一旦this.thread =response.data,只有这样我才希望页面显示。
需要注意的一件重要事情是,我还通过URL参数来获取数据,即主题/black/post ID。
下面是我的getUrlParam方法
url() {
let x = this.$route.params.topic.split('-');
this.topicId = x[0];
let y = this.$route.params.id.split('-');
this.blockId = y[0];
let post = this.$route.params.thread.split('-');
this.postId = post[1];
this.getThread();
}
谢谢
1条答案
按热度按时间qxgroojn1#
您需要在
beforeRouteEnter
内部移动getThread
注意:
beforeRouteEnter
不能是异步的,所以我使用then
来获取响应如果你决定使用
Vuex
,那么你需要添加一个mutation并从promise的回调中调用它。