我可以手动访问vue-router解析器吗?

91zkwejq  于 2023-10-23  发布在  Vue.js
关注(0)|答案(2)|浏览(137)

我能访问vue-router解析器吗?这样我就可以在导航到链接之前对其进行评估。即:
假设我有路径/one/two/three,但这不是当前路径。我想看看该路径是否与路由文件中的某些内容匹配,并获取它匹配的对象。
例如,假设上面的路径匹配:

{
  path: `/one/:user/:page`,
  name: "path-one",
  component: () => import('../views/DashboardPage.vue'),
  meta: { etc... }
},

我想称之为:

const match = useRouter().parse("/one/two/three")

并使match为上述结构。
我猜该功能存在于路由器中,但我看不到它是公开的。
另一种方式是,我想要useRoute的结果,但对于任意URL,不使用当前路径。

jdzmm42g

jdzmm42g1#

这是useRouter上的resolve函数。返回一个RouteLocation对象,它将有一个matched属性,包含来自路由文件的匹配路由记录。

const matches = useRouter().resolve("/one/two/three").matched // empty array if no matches
s5a0g9ez

s5a0g9ez2#

你试过match吗:

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
})

const match = router.match('/one/two/three')
console.log(match) // This will log the matched route record

相关问题