Language as param in Vue Router

I would like to have a language param in my path. For example if there is en before the path, print en.

If I enter http://localhost:8080/en it will give me en but if I enter http://localhost:8080/en/aaaa it will return me undefined how can I get en anyway?

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

Solution 1:

Under the assumption that you are planning on adding different language support for your app, I would recommend instead using i18n because it will abstract away things like appending params for different languages.

To your specific question on why you are getting undefined, that could simply be because there is no view page or route for the /aaa route. So Vue is just confused on where you want to go.

Solution 2:

You can use pure javascript to get the current url and get the parameters through a split.

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