【问题标题】:Nuxt.js routes limit possible parameter optionsNuxt.js 路由限制了可能的参数选项
【发布时间】:2019-06-13 12:54:44
【问题描述】:

我的 Nuxt.js 应用程序中有以下 url 结构。

/pages/_wildcard/_id.vue

基本对应example.com/*/*

我正在寻找一种仅在访问特定参数时触发该页面的方法。

例如,我想只允许clotheselectronicsbabies 作为可能的通配符值对应

  • example.com/clothes/*
  • example.com/electronics/*
  • example.com/babies/*

除了他们三个以外的任何东西都不应该进入这个页面。

出现问题是因为第一个参数是通配符。我正在寻找一种只允许在路由中使用特定通配符值的方法。有这样的吗?

我唯一想到的是在 asyncData 方法中有一个 if 语句来进行验证,但我想避免这种情况。在这里寻找更好的解决方案。

【问题讨论】:

  • 有什么解决办法吗?我想对 nuxt 页面中的特定路线做同样的事情。

标签: vue.js vue-router nuxt.js


【解决方案1】:

Vue-router 有很棒的dynamic redirects / 检查方式:

const router = new VueRouter({
  routes: [
    { path: '/a', redirect: to => {
      // the function receives the target route as the argument
      // return redirect path/location here.
    }}
  ]
})

您可以将路由检查放入此函数并执行任何需要的验证。

或者...您可以使用Vue-router reg-exp 的全部功能并像这样在 router.js 中编写您的路径:

/(clothes|electronics|babies)/*

【讨论】:

  • 感谢您的回答。由于我们无法直接访问 VueRouter 创建,您是否知道如何在 nuxt.js 中执行此操作?
  • @mauxtin,您如何以及在哪里定义您的 URL 路径?这不是你需要的nuxtjs.org/api/configuration-router#extendroutes 吗?
  • @mauxtin,这是您的案例的解决方案:nuxtjs.org/api/configuration-generate#routes。您只需要在 nuxt.config.js 中设置一组预定义的 url 部分。
  • 这似乎不是要解决的方法,因为 generate 仅用于静态页面生成,事实并非如此。
  • @mauxtin,也许你是对的。在阅读有关 nuxj 的文档时看到了 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
  • 1970-01-01
相关资源
最近更新 更多