【发布时间】:2020-09-06 19:36:13
【问题描述】:
我的应用程序中的嵌套<router-view>s 目前存在以下问题,我想知道这是否是正确的方法。
我有一个navigation.vue 路由组件,在路由器中配置了子路由。
在这个组件中,我有多个 <router-view>s(在一个 v-for 循环中)。
每个路由器视图都有自己的链接,如果您单击它,包含路由器视图的单击容器将开始转换并显示内容(page.vue 组件)。
要在确认导航之前触发转换,我会监听 beforeRouteUpdate() 钩子。
但是,我现在想在此导航中添加其他 navigation 组件,这样我就有了类似的东西:
<navigation>
<page/>
<page/>
<navigation>
<page/>
<page/>
</navigation>
<page/>
</navigation>
打开子导航的钩子似乎可以工作-但是如果我尝试在第二级打开页面,导航组件无法获取属于自己的$refs。我看到调用了第一级导航的beforeRouteUpdate() 钩子。我认为这是意料之中的,因为它仍在后台,持有二级导航及其页面。
我该怎么做才能只在打开二级导航时使用它的功能?
我应该在beforeRouteUpdate() 钩子中做一些检查,它们都被解雇了吗?
我可能很困惑,因为我不知道该组件是否被重用或其他什么 - 在我的理解中它应该是该组件的第二个实例。
我也在<router-view>s 周围使用<keep-alive> - 所以如果这是一个问题并且事情与它不同,我也很高兴得到提示。
谢谢!
【问题讨论】:
标签: vue.js vuejs2 vue-component vue-router