javascript - 在 Vue.js 中如何使用多个路由 View ,其中一个在另一个组件中?

标签 javascript vue.js vuejs2 vue-router

我有一个 Vue.js 单页应用程序,其中有一个使用 <router-view/> 的主导航栏。呈现不同的页面。

像这样:

<main-header/> <!-- navigation links -->
<transition name="slide-fade" mode="out-in">
  <router-view/> <!-- different pages -->
</transition>

在其中一个页面中,我有一个侧边栏,其中包含更多导航链接(使用 <router-link/> 就像主导航栏一样。

像这样:

<sidebar/> <!-- navigation links -->
<div class="content">
  <transition name="slide-fade" mode="out-in">
    <router-view/> <!-- content beside the sidebar -->
  </transition>
</div>

当我单击侧边栏导航链接时,我希望侧边栏旁边的内容和 url 都发生变化。但是,我丢失了侧边栏,只获取了要在内容部分呈现的组件。

我怎样才能达到预期的效果?如何使用多个 <router-view/>其中一个在另一个组件中,就像上面的例子一样?

最佳答案

您需要使用命名 View 。为 View 提供 name 属性。

<router-view class="view one"></router-view>
<router-view class="view two" name="a"></router-view>

像这样配置它们

const router = new VueRouter({
  routes: [
    {
      path: '/',
      components: {
        default: Foo,
        a: Bar
      }
    }
  ]
})

请引用official docs .

关于javascript - 在 Vue.js 中如何使用多个路由 View ,其中一个在另一个组件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48111573/

相关文章:

javascript - 如何创建自定义类型数组 typescript

javascript - 从 Vue 中的嵌套子调用父方法

javascript - 如何获得自月初以来经过的总秒数?

vue.js - 验证在第一个输入上返回 false,在下一个输入上返回 true

vue.js - vue : Uncaught TypeError: Cannot read property . .. 未定义

javascript - 在vue js中动态导入文件

vuejs2 - 在 vue.js 中的mounted() 中使用PROPS

javascript - 在日期之前分割字符串 (d/m/Y)

vue.js - 如何显示 Laravel Vue Js 错误

vue.js - 在 Vuejs 2 中单击按钮时将完成更改为 true