Javascript 来自api的Nuxt动态路由
我对numxt.config.ts中的ExtendDrootes有问题 当我构建nuxt并生成页面时,我希望路由器根据api调用知道哪个组件指向哪个路径 因此,在Nuxt.config.ts中,我执行以下操作:Javascript 来自api的Nuxt动态路由,javascript,vue.js,nuxt.js,Javascript,Vue.js,Nuxt.js,我对numxt.config.ts中的ExtendDrootes有问题 当我构建nuxt并生成页面时,我希望路由器根据api调用知道哪个组件指向哪个路径 因此,在Nuxt.config.ts中,我执行以下操作: router: { extendRoutes(routes resolve){ cms.getRoutes().then(x => { <-- this returns an array from api call with objects needed for
router: {
extendRoutes(routes resolve){
cms.getRoutes().then(x => { <-- this returns an array from api call with objects needed for path
for(var i = 0; i < x.items.lenth; i++){
routes.push({
name: x.items[i].name,
component: component: resolve(__dirname, `pages/index.vue`), <- this is just and ex. of comp.
path: x.items[i].slug,
});
}
})
}
}
路由器:{
可扩展数据源(路由解析){
cms.getRoutes().then(x=>{这不是使用async/await
的方法。它应该消除.then()
链接,但您仍然在这里使用它。请像这样尝试:
router: {
async extendRoutes(routes, resolve) {
let x = await cms.getRoutes();
for (var i = 0; i < x.items.length; i++) {
routes.push({
name: x.items[i].name,
component: resolve(__dirname, `pages/index.vue`),
path: x.items[i].slug
});
}
}
};
路由器:{
异步扩展节点(路由、解析){
设x=wait cms.getRoutes();
对于(变量i=0;i
我最终使用了nuxt路由器模块(),在那里我可以删除nuxt路由器并创建自己的路由器
在这里,我可以使用api调用和await/async,并为我想要的路由创建逻辑。你可以向我们展示你的异步尝试吗?是的,我将用async@Ifaruki它现在已被编辑,正如所解释的,我不能使用async await;)尽管我在ExtendRoots中使用了async,但它提供了路由。foreach不是一个函数,不能将foreach()
与async一起使用,但可以使用for()
@AndersbootsManlarsen
router: {
async extendRoutes(routes, resolve) {
let x = await cms.getRoutes();
for (var i = 0; i < x.items.length; i++) {
routes.push({
name: x.items[i].name,
component: resolve(__dirname, `pages/index.vue`),
path: x.items[i].slug
});
}
}
};