更改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
}
}
相关文章