Vue 路由器使用参数打开一个新选项卡(参数为空)

cur*_*ock 0 vue.js vue-router

我正在使用 vue-router 并传递一些参数来打开一个新选项卡。我不想传递查询参数,因为我不希望用户看到它们。因此,每当打开新页面时,我传递的参数都不存在。我认为即使我在新页面中打开也应该可以访问这些参数,对吧?

      let routeData = this.$router.resolve({ path: '/link/component', params: {
      param1: 'value1',
      param2: 'value2',
  }})
  
      window.open(routeData.href, '_blank')
Run Code Online (Sandbox Code Playgroud)

在我的组件中,我尝试以这种方式访问​​参数,但它是未定义的。

console.log("this",this.$route.params)
Run Code Online (Sandbox Code Playgroud)

ton*_*y19 5

您可以使用本地存储将隐藏的(未在 URL 中显示)参数传递到新窗口:

打开页面前,保存参数:

localStorage['params'] = JSON.stringify({
  param1: 'value1',
  param2: 'value2',
})
Run Code Online (Sandbox Code Playgroud)

然后在需要时将它们恢复到您的组件中:

let params = {}
try {
  params = JSON.parse(localStorage['params'])
} catch (error) {
  // ignore
}
Run Code Online (Sandbox Code Playgroud)