更改Vue 3路由器中的参数

Changing a parameter in Vue 3 router(更改Vue 3路由器中的参数)
本文介绍了更改Vue 3路由器中的参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Vue路由器更改路由参数。 我的路线如下: 数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">

/document/:id?/:lang?/edit

ID和lang(语言)是参数。 我想使用JavaScript更改参数lang,而不更改路线的其余部分。我尝试应用以下解决方案(找到here)。解决方案是为Vue 2而不是Vue 3制作的。所以我试着做了一个更新的版本。 这是我的代码:

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
let params = this.$route.params
params.lang = 'en'
this.$router.push({params:params})
当我执行我的代码时,没有更改路由参数,也没有在控制台中记录错误。有没有人知道Vue 3中这个问题的解决方案。

提前谢谢。

推荐答案

这样更改您的路由参数不是一种好方法。

相反,将您的路由替换为相同的name、相同的id,但不同的lang

  this.$router.replace({
    name: this.$route.name,
    params: {
      id: this.$route.params.id,
      lang: 'en' // or whatever you want
    }
  })

如果需要,不要忘记注意路线的变化:

  watch: {
    $route(to, from) {
      // if anything needs to be done when the route changes
    }
  }

这篇关于更改Vue 3路由器中的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Swipable Vuetify Tabs with router(带路由器的可滑动Vutify标签)
Vue router - how to have multiple components loaded on the same route path based on user role?(VUE路由器-如何根据用户角色将多个组件加载到同一路由路径上?)
Router Link in VUE JS is not showing active(VUE JS中的路由器链路未显示为活动状态)
Can i import single file component using Vue and Vue Router CDN?(我可以使用VUE和VUE路由器CDN导入单个文件组件吗?)
Vue 3 - Get access to router-view instance in order to call child methods(VUE 3-访问路由器视图实例以调用子方法)
How to replace one parameter in Vuejs router(如何替换Vuejs路由器中的一个参数)