我们知道只有路由器组件可以asyncData
在 ssr 环境中请求。我有一个主要组件(不是路由器组件),我需要一些异步数据来呈现服务器端。因为它不是路由器组件,所以我不能asyncData
用于服务器端渲染。
所以我使用created
钩子来调用异步 api,但是组件钩子是同步的,不等待承诺。如何在服务器端获取异步数据?
App.vue - 主要组件
export default {
components: {
footer: Footer,
header: Header,
selector: selector
},
beforeMount() {
// need preload metadata here
},
created () {
// it return preload metadata as response.
return this.$store.dispatch('GET_PRELOAD_META_DATA');
}
}
动作.js
GET_PRELOAD_META_DATA: ({ commit }) => {
return axios.get("api/preload").then(({ data }) => {
commit('SET_PRELOAD_DATA', data);
});
},