Для ограничения набора для роута с параметром в Nuxt.js, вы можете использовать регулярные выражения или функцию-обработчик в файле nuxt.config.js
.
1. Использование регулярных выражений:
// nuxt.config.js export default { router: { extendRoutes(routes, resolve) { routes.push({ name: 'dynamic-route', path: '/dynamic-route/:id(\d+)', // регулярное выражение для числовых значений component: resolve(__dirname, 'pages/dynamic-route.vue') }) } } }
Это ограничение позволяет указать, что параметр id
может содержать только числовые значения. Если пользователь вводит текстовое значение, он будет перенаправлен на страницу 404.
2. Использование функции-обработчика:
// nuxt.config.js export default { router: { extendRoutes(routes, resolve) { routes.push({ name: 'dynamic-route', path: '/dynamic-route/:id', component: resolve(__dirname, 'pages/dynamic-route.vue'), validate: (params) => { // Параметр `params` содержит все параметры маршрута // Мы можем здесь задать кастомные условия return /^d+$/.test(params.id) // Регулярное выражение для числовых значений } }) } } }
В этом случае мы определяем функцию validate
, которая проверяет, соответствует ли значение параметра id
определенному регулярному выражению. Если пользователь вводит неверное значение, он будет перенаправлен на страницу 404.
Оба этих подхода позволяют ограничить набор значений для роута с параметром в Nuxt.js. Выберите подход, который лучше подходит для вашей конкретной ситуации.