Vue.JS - 主要布局组件和路由
Vue.JS - Main layout component and routing
我有一个 主布局组件 (由固定的顶部 header 和一个左侧菜单组成,其中包含 router-link 组件创建的多个 link ) 和一个 "dynamic" 布局组件,它是页面的底部。
我希望通过根据左侧菜单上单击的 link 在不同的组件上进行路由来更改我网站的中心。
为了做到这一点,我将 router-view 放在我的 App.vue 中,它是我应用程序中更高级别的 Vue 组件,如以下代码所示:
<template>
<div id="app">
<layout>
<router-view/>
</layout>
</div>
</template>
这是我的主要布局组件,其中包含 header 和左侧菜单,这是我网站的固定部分:
<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 这样的组件
<router-link to="/home">Accueil</router-link>
我在我的路由器中捕获,将特定的 Url 附加到 vue 组件
export default new Router({
routes: [
{
path: '/home',
name: 'home',
component: home
}
]
})
但是它不起作用,我不明白为什么。因此,我需要帮助:)
假设你是 Router-View
并且你有一个朋友叫 Layout
。你的朋友邀请你去她家一起看电影。你喜欢她,所以你等不及了,直到会议之夜到来,你才发现她没有给你她的地址。
这就是代码中发生的事情。 Router-view 知道它应该出现在布局中,但不知道在哪里。
<layout>
<router-view/>
</layout>
像上面这样的模板结构意味着 <router-view>
将在 <layout>
中呈现在由 <slot>
元素确定的位置。未提供插槽,因此 router-view 不知道应该在何处呈现它。
详情请阅读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>
我有一个 主布局组件 (由固定的顶部 header 和一个左侧菜单组成,其中包含 router-link 组件创建的多个 link ) 和一个 "dynamic" 布局组件,它是页面的底部。
我希望通过根据左侧菜单上单击的 link 在不同的组件上进行路由来更改我网站的中心。
为了做到这一点,我将 router-view 放在我的 App.vue 中,它是我应用程序中更高级别的 Vue 组件,如以下代码所示:
<template>
<div id="app">
<layout>
<router-view/>
</layout>
</div>
</template>
这是我的主要布局组件,其中包含 header 和左侧菜单,这是我网站的固定部分:
<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 这样的组件
<router-link to="/home">Accueil</router-link>
我在我的路由器中捕获,将特定的 Url 附加到 vue 组件
export default new Router({
routes: [
{
path: '/home',
name: 'home',
component: home
}
]
})
但是它不起作用,我不明白为什么。因此,我需要帮助:)
假设你是 Router-View
并且你有一个朋友叫 Layout
。你的朋友邀请你去她家一起看电影。你喜欢她,所以你等不及了,直到会议之夜到来,你才发现她没有给你她的地址。
这就是代码中发生的事情。 Router-view 知道它应该出现在布局中,但不知道在哪里。
<layout>
<router-view/>
</layout>
像上面这样的模板结构意味着 <router-view>
将在 <layout>
中呈现在由 <slot>
元素确定的位置。未提供插槽,因此 router-view 不知道应该在何处呈现它。
详情请阅读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>