语言作为 Vue 路由器中的参数

Language as param in Vue Router

我想在我的路径中有一个语言参数。例如路径前有en,打印en.

如果我输入 http://localhost:8080/en 它会给我 en 但如果我输入 http://localhost:8080/en/aaaa 它会 return 我 undefined 我怎样才能得到 en

const routes = [
  {
    path: "/:lang?",
    children: [
      {
        path: home,
        component: home
      }
    ]
  }
]
router.beforeEach((to, _, next) => {
  console.log(to.params.lang);
}

可以使用纯javascript获取当前url,通过split获取参数

let myListParams = window.location.href.split('/');

假设您计划为您的应用程序添加不同的语言支持,我建议您改用 i18n,因为它会抽象掉诸如为不同语言附加参数之类的东西。

关于您为什么得到 undefined 的具体问题,这可能只是因为 /aaa 路线没有查看页面或路线。所以 Vue 只是对你想去的地方感到困惑。