在实际项目中我们会碰到多层嵌套的组件组合而成,但是我们如何实现嵌套路由呢?因此我们需要在 VueRouter 的参数中使用 children 配置,这样就可以很好的实现路由嵌套。

index.html,只有一个路由出口

<div id="app">
	<!-- router-view 路由出口, 路由匹配到的组件将渲染在这里 -->
	<router-view></router-view>
</div>
main.js,路由的重定向,就会在页面一加载的时候,就会将home组件显示出来,因为重定向指向了home组件,redirect的指向与path的必须一致。children里面是子路由,当然子路由里面还可以继续嵌套子路由。

import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)

//引入两个组件
import home from "./home.vue"
import game from "./game.vue"
//定义路由
const routes = [
	{ path: "/", redirect: "/home" },//重定向,指向了home组件
	{
		path: "/home", component: home,
		children: [
			{ path: "/home/game", component: game }
		]
	}
]
//创建路由实例
const router = new VueRouter({routes})

new Vue({
	el: '#app',
	data: {
	},
	methods: {
	},
	router
})
home.vue,点击显示就会将子路由显示在出来,子路由的出口必须在父路由里面,否则子路由无法显示。

<template>
	<div>
		<h3>首页</h3>
		<router-link to="/home/game">
			<button>显示<tton>
		</router-link>
		<router-view></router-view>
	</div>
</template>
game.vue

<template>
	<h3>游戏</h3>
</template>

运行后的结果:

点击显示后:




GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐