【问题标题】:Vue.JS - Main layout component and routingVue.JS - 主要布局组件和路由
【发布时间】:2018-10-24 01:46:12
【问题描述】:


我有一个主布局组件(由一个固定的顶部标题和一个左侧菜单组成,其中包含由路由器链接组件创建的多个链接)和一个“动态”布局组件 谁是页面的核心。
我希望通过根据左侧菜单上单击的链接在不同组件上进行路由来更改我网站的中心。
为了做到这一点,我将路由器视图放在我的 App.vue 中,它是我的应用程序中更高级别的 Vue 组件,如以下代码所示:

<template>
  <div id="app">
    <layout>
      <router-view/>
    </layout>
  </div>
</template>

这是我的主要布局组件,它包含标题和左侧菜单,这是我网站的固定部分:

<template>
 <v-app>
   <loader></loader>
   <v-layout row wrap>
     <v-flex xs12>
       <stickyHeader></stickyHeader>
     </v-flex>
     <v-flex xs2>
       <sideNavMenu></sideNavMenu>
     </v-flex>
   </v-layout>
 </v-app>
</template>

我的 sideNavMenu 组件包含多个这样的路由链接组件

<router-link to="/home">Accueil</router-link>

我在路由器中捕捉到,将特定的 Url 附加到 vue 组件

export default new Router({
  routes: [
   {
     path: '/home',
     name: 'home',
     component: home
   }
 ]
})

但它不起作用,我不明白为什么。因此,我需要帮助:)

【问题讨论】:

  • 你是在将组件导入到 Vue Router 文件中吗?
  • 你的根路径是'/'还是'/home'?
  • 我的意思是您在应用程序启动后看到的路径。无论如何尝试在路由数组的末尾添加一个像这样 { path: '*' , redirect: '/' } 的后备路由

标签: javascript vue.js vuejs2 vue-component vue-router


【解决方案1】:

假设你是Router-View,你有一个朋友叫Layout。你的朋友邀请你到她家一起看电影。你喜欢她,所以你不能等到开会那天晚上,你才意识到她没有给你她的地址。

这就是代码中发生的事情。 Router-view 知道它应该出现在 Layout 但不知道在哪里。

<layout>
  <router-view/>
</layout>

类似上面的模板结构意味着&lt;router-view&gt; 将在&lt;layout&gt; 中由&lt;slot&gt; 元素确定的位置呈现。没有提供插槽,所以路由器视图不知道它应该在哪里渲染。

请阅读https://vuejs.org/v2/guide/components-slots.html了解更多详情。

你可以把它放在这里:

<template>
 <v-app>
   <loader></loader>
   <v-layout row wrap>
     <v-flex xs12>
       <stickyHeader></stickyHeader>
     </v-flex>
     <v-flex xs2>
       <sideNavMenu></sideNavMenu>
     </v-flex>
     <slot />
   </v-layout>
 </v-app>
<template>

【讨论】:

  • ? 太搞笑但很有帮助
  • 我遇到的最好的叙述答案之一!
猜你喜欢
  • 2018-07-14
  • 2021-10-30
  • 2017-03-03
  • 2019-06-16
  • 2020-07-21
  • 2018-06-15
  • 2018-06-17
  • 1970-01-01
  • 2019-01-16
相关资源
最近更新 更多