在 Vue3 和 Vue-router 中获取当前路由的最佳方法?

Posted

技术标签:

【中文标题】在 Vue3 和 Vue-router 中获取当前路由的最佳方法?【英文标题】:Best way to get current route in Vue3 and Vue-router? 【发布时间】:2021-05-05 10:33:22 【问题描述】:

我正在尝试使用 Vue3 和 Vue-router 获取当前路径(类似于 "https://example.com/some/path")。

之前,在使用 Vue2 时,我可以使用以下方法获取当前路线:

    // works with vue 2.x with composition-api, but not with vue 3.x
    setup(_, ctx) 
        const path = computed(() => ctx.root.$route.path)

但在 Vue3 中无法使用 ctx.root (as stated by Evan You here)。 那么用 Vue3 获取当前路由的首选方式是什么?

【问题讨论】:

【参考方案1】:

你可以使用可组合函数useRoute

import useRoute from 'vue-router'
import computed from 'vue'
...

setup()
   const route=useRoute();

   const path = computed(() =>route.path)


【讨论】:

它给出的'计算'未定义 你应该在import useRoute from 'vue-router之后导入它import computed from 'vue'

以上是关于在 Vue3 和 Vue-router 中获取当前路由的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章

ts+vue3+vite+pinia+vue-router 踩坑合集

vue3的js文件中使用vue-router

Vue3“在'vue-router'中找不到导出'createWebHistory,createRouter'

vite+vue3+ts中的vue-router基本配置

Vue3 如何使用 vue-router 以及路由权限拦截

Vue3.0全家桶最全入门指南 - vue-router@4.x和vuex@4.x (3/4)