Vuejs2 Vue路由器能否处理来自普通锚而非路由器链接的点击?

Vuejs2 Vue路由器能否处理来自普通锚而非路由器链接的点击?,vuejs2,vue-router,Vuejs2,Vue Router,我有一个场景,页面上有两个主要组件;一个框架式组件,包含许多应用程序(包括书签/选项卡栏)的通用功能和我的实际应用程序代码 由于框架实际上并不拥有它所包含的页面,因此它定义任何路由似乎都是不正确的,但是当前页面可能会定义它们自己的路由,这些路由可能与其中一个链接相匹配。在这种情况下,我希望vue路由器能够正确处理这些锚定点击并导航,而不是重新加载整个页面 下面是一个简化的模板,它看起来像: 框架(我的应用程序的外部依赖项): 附录1: 你正在看:{{pageId}}! 因此,当从该选项卡

我有一个场景,页面上有两个主要组件;一个框架式组件,包含许多应用程序(包括书签/选项卡栏)的通用功能和我的实际应用程序代码

由于框架实际上并不拥有它所包含的页面,因此它定义任何路由似乎都是不正确的,但是当前页面可能会定义它们自己的路由,这些路由可能与其中一个链接相匹配。在这种情况下,我希望
vue路由器
能够正确处理这些锚定点击并导航,而不是重新加载整个页面

下面是一个简化的模板,它看起来像:

框架(我的应用程序的外部依赖项):


附录1:


你正在看:{{pageId}}!
因此,当从该选项卡条中单击任何
app1
域链接时,我希望
app1
中的路由定义能够拾取该链接,而不是导致页面加载。由于该组件归框架所有,因此我无法写入
,因为指向许多不同应用程序的链接可能同时存在于框架中


有什么想法吗?

棘手的用例。只需确认:TabStrip应该根据中的组件更改其导航位置?棘手的组件是否可以发出与路由器通信的信息?或者,(不是那么优雅)制作几个
TabStrip
组件,每种嵌套组件一个,然后是
is
根据插槽以编程方式切换正确的组件?另一种可能是使用
vuex
存储,并根据保存在那里的变量,以编程方式更改路由器链接。在这里的建议中,您的第一个建议是我开始尝试这样做时的最初想法。由于上述原因,我无法在
选项卡条中使用
路由器链接
,因此我正在考虑向组件添加一个
单击
处理程序,该处理程序将发出一个带有目标href的
导航
事件,然后应用程序可以使用该事件并防止原始事件的默认值。这种方法的问题是,我找不到Vue路由器的公共API,它“给我与此url匹配的路由”,以便提示您可以使用自己的函数来实现这一点。您可以执行
const routes this.$router.options.routes.map(x=>{return{name:x.name,path:x.path,children:x.children}})
获取所有路由,然后对每个子级重复该过程,并“构建”所有可能路由的列表。然后进行比赛。仍然不是一个很好的解决方案,但考虑到你的情况,也许它可以工作。我有不同但相似的情况:我需要把一些html块与v-html,这个块有链接,这是常见的锚。问题是一样的,因为我需要找到一种方法来处理SPA和路由器中常见的
a
链接。我还没有找到用vue路由器处理它们的方法。我考虑将
a
替换为
router link
+使用带有vue.compile函数的完整vue构建。然而,这绝对不是那个问题中的情况,因为在这个问题中,你不能解析和替换东西。实际上,我喜欢用点击处理程序来处理这个问题。我也遇到过类似的情况。。。。我们如何在VueRouter中使用现有的
。有人知道答案吗??
<Frame>
   <TabStrip>
     <a href="//app1.foo.com/1245"></a>
     <a href="//app2.foo.com/account"></a>
     <a href="//app1.foo.com/2456"></a>
   </TabStrip>
   <slot></slot>
 <Frame>
<Frame>
  <App>You're looking at: {{ pageId }}!</App>
</Frame>