Vue路由器 - 验证参数是否在数组中

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我有一条路线:

/browse/:type/:id?

如何验证:type是否包含允许值数组?

提问于
用户回答回答于

您可以使用导航卫兵

const router = new VueRouter({
    routes: [{
        path: '/browse/:type/:id?',
        component: Browse,
        beforeEnter: (to, from, next) => {
            let array = [1, 2, 4]
            if (array.indexOf(to.params.type) == -1)
                alert('Error');
            else
                next()
        }
    }]
})

还有其他方法可以实现,你甚至可以使用全局导航保护钩,VueJS docs提供了非常好的例子,我在上面提供了这个答案的链接。

用户回答回答于

你可以使用beforeEnter钩子。

const router = new VueRouter({
  routes: [
    {
      path: '/browse/:type/:id',
      component: Foo,
      beforeEnter: (to, from, next) => {
        // ...
      }
    }
  ]
})

然后你可以检查to

to:Route:要导航到的目标Route Object。

以下是doc:https//router.vuejs.org/guide/advanced/navigation-guards.html#per-route-guard

扫码关注云+社区

领取腾讯云代金券