Vue,有没有办法在没有 URL 参数的情况下在路由之间传递数据?

新手上路,请多包涵

我正在研究如何在我的 Vue2 应用程序中不使用 URL 参数的情况下在两个单独的组件(不是父组件和子组件)之间秘密传递数据。这并不意味着我在传递秘密,而是我只是不想让用户看到它(仅出于 UI 考虑)。

我知道 Vue 有 Props ,但它们用于在父组件和子组件之间传递数据。在我的例子中,我的 URL 会改变,但我不想通过可见参数传递数据。

有人声称在 这里 使用没有 URL 参数的道具,但我无法重现有效的解决方案(每次都未定义)。

我还检查了 这些 选项,但它们都使用我们知道可见的 URL 或查询参数。

一个丑陋的解决方案是将数据写入本地存储,然后在那里读取它,但这会产生大量的开销和复杂性(比如如果我只希望这些数据被读取一次,等等)。

这个问题有更优雅的解决方案吗?

谢谢!

原文由 KasparTr 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 358
1 个回答
  1. make props: true for the destination route – 在 router 的 index.js 文件中
     {
      path: '/home',
      name: 'home',
      component: taskChooser,
      props: true,
      }
  1. 在组件中定义 prop 例如 props: [‘myprop’], - 注意引号

  2. 将要从源路由传递的变量复制到与 prop 相同的名称中 - 在本例中为 myprop

 myprop = theVariableThatYouWantToPass

this.$router.replace({name:'home', params:{myprop}});

确保 prop 和变量的名称相同 - prop 在引号中。

它对我有用。

原文由 mayank1513 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题