gpt4 book ai didi

javascript - 在 vue 路由中匹配查询参数

转载 作者:数据小太阳 更新时间:2023-10-29 06:00:10 24 4
gpt4 key购买 nike

有什么方法可以通过查询参数进行路由吗?我想匹配以下路由:site.com/?foo=123。我试过类似的东西

{ path: '/\?foo=[\d]*' }

没有成功。

最佳答案

不幸的是,您无法匹配路由定义的 path 字符串中的查询参数。

Vue Router 使用 path-to-regexpits documentation说:

The RegExp returned by path-to-regexp is intended for use with pathnames or hostnames. It can not handle the query strings or fragments of a URL.


可以通过在参数名称后的括号中指定正则表达式来使用正则表达式匹配路由参数,如下所示:

{ path: '/:foo([\d]*)' },

但是,Vue Router 的路由参数不能在查询中。

Here are some examples of the different route-matching features Vue Router provides.


如果您确实需要检查 url 的查询,您可以使用 beforeEnter 处理程序手动匹配查询,然后在格式不正确时重新路由:

const routes = [{
name: 'home',
path: '/',
component: Home,
beforeEnter(to, from, next) {
if (to.query.foo && to.query.foo.match(/[\d]*/)) {
next({ name: 'foo', query: to.query });
} else {
next();
}
}
}, {
name: 'foo',
path: '/',
component: Foo,
}];

关于javascript - 在 vue 路由中匹配查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44797824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com