如果希望 Nuxt.js 生成带有动态参数的路由,则需要将 generate.routes 属性设置为动态路由数组。
如果你有一个包含 url 的列表,你可以这样做:
// nuxt.config.js
generate {
routes () {
// You can also import this from a js file.
const yourUrls = ['ford-500', 'porche-spyder', 'mclaren-senna', 'volkswagen-beetle'];
const routesToGenerate = [];
for (const url of yourUrls) {
const newRoute = '/cars/' + url;
routesToGenerate.push(newRoute);
}
return routesToGenerate;
}
}
当然你也可以使用 .json 文件
// nuxt.config.js
generate {
routes () {
const routesToGenerate = [];
for (const urlKey of Object.keys(yourJsonFile)) {
const newRoute = '/cars/' + yourJsonFile[urlKey];
routesToGenerate.push(newRoute);
}
return routesToGenerate;
}
}
如果您需要,您还可以将有效负载传递到您正在生成的组件中。您可以在此处的文档中阅读有关它的更多信息。 (https://nuxtjs.org/api/configuration-generate/#routes)
Nuxt-i18n
如果您使用像 nuxt-i18n 这样的国际化模块,则需要手动定义语言环境前缀
// nuxt.config.js
generate {
routes () {
// You can also import this from a js file.
const yourUrls = ['ford-500', 'porche-spyder', 'mclaren-senna', 'volkswagen-beetle'];
const yourLocales = ['da-DK', 'en', 'de']
const routesToGenerate = [];
for (const url of yourUrls) {
const defaultRoute = '/cars/' + url;
routesToGenerate.push(defaultRoute);
for (const locale of yourLocales) {
const localeRoute = locale + '/cars/' + url;
routesToGenerate.push(localeRoute);
}
}
return routesToGenerate;
}
}