如何在新选项卡中打开 vue 组件而不通过 vue 路由器加载页面?
Posted
技术标签:
【中文标题】如何在新选项卡中打开 vue 组件而不通过 vue 路由器加载页面?【英文标题】:How to open a vue component in new tab without page load by vue router? 【发布时间】:2020-08-19 03:36:20 【问题描述】:是否可以通过 vue 路由器在新选项卡中打开 Vue 组件而无需重新加载页面。
正常方式:
<a href="http://example.com" target="_blank">htmlExample </a>
Vue 路由器
<router-link to="/example" target="_blank">Vue Router Example </a>
它工作正常,但我需要它而不需要重新加载页面。
【问题讨论】:
这能回答你的问题吗? Can vue-router open a link in a new tab? "无需重新加载页面" 你在这里是什么意思?就像当前页面或您在新选项卡中打开的页面一样。新标签页是一个完全独立的浏览器进程,因此答案是否定的。 一切正常,没问题,但如果有任何进程可用于通过另一个选项卡中的 Vue 路由器将一个组件切换到另一个组件,我想要任何进程。 @JaredMcAteer 我认为您无法通过简单的路由器链接来做到这一点。如果你想控制另一个窗口,你可能需要使用postMessage API 并实现一些系统来在窗口之间进行通信。您也许可以生成一个具有特定 id 的弹出窗口并将目标设置为窗口 id 而不是“空白”,但我不认为 pushState 会以这种方式工作。 【参考方案1】:如果我正确理解了您的问题:总是会加载新页面,因为它是一个 vue 生命周期。 Vue lifecycles。但是你可以在这里做的是使用浏览器的本地存储。例如,当组件被挂载时,您可以共享上一页的数据。
【讨论】:
这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review以上是关于如何在新选项卡中打开 vue 组件而不通过 vue 路由器加载页面?的主要内容,如果未能解决你的问题,请参考以下文章
window.open(url, windowname, opts) 在新选项卡中打开,而不是在 Firefox 中打开新窗口
在新选项卡/窗口中打开链接而不丢失当前 JSF 页面的视图范围