1. 程式人生 > >vue-路由-多層

vue-路由-多層

path tail view -s document name div ctype out

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="bower_components/vue/dist/vue.js"></script>
	<script src="bower_components/vue-router/dist/vue-router.js"></script>
	<style>
		.v-link-active{
			font-size: 20px;
			color: #f60;
		}
	</style>
</head>
<body>
	<div id="box">
		<ul>
			<li>
				<a v-link="{path:‘/home‘}">主頁</a>
			</li>
			<li>
				<a v-link="{path:‘/news‘}">新聞</a>
			</li>
		</ul>
		<div>
			<router-view></router-view>
		</div>	
	</div>

	<template id="home">
		<h3>我是主頁</h3>
		<div>
			<a v-link="{path:‘/home/login/zns‘}">登錄</a>
			<a v-link="{path:‘/home/reg/strive‘}">註冊</a>
		</div>
		<div>
			<router-view></router-view>
		</div>
	</template>
	<template id="news">
		<h3>我是新聞</h3>
		<div>
			<a v-link="{path:‘/news/detail/001‘}">新聞001</a>
			<a v-link="{path:‘/news/detail/002‘}">新聞002</a>
		</div>
		<router-view></router-view>
	</template>
	<template id="detail">
		{{$route.params | json}}
		<br>
		{{$route.path}}
		<br>
		{{$route.query | json}}
	</template>
	<script>
		//1. 準備一個根組件
		var App=Vue.extend();

		//2. Home News組件都準備
		var Home=Vue.extend({
			template:‘#home‘
		});

		var News=Vue.extend({
			template:‘#news‘
		});

		var Detail=Vue.extend({
			template:‘#detail‘
		});

		//3. 準備路由
		var router=new VueRouter();

		//4. 關聯
		router.map({
			‘home‘:{
				component:Home,
				subRoutes:{
					‘login/:name‘:{
						component:{
							template:‘<strong>我是登錄信息 {{$route.params | json}}</strong>‘
						}
					},
					‘reg‘:{
						component:{
							template:‘<strong>我是註冊信息</strong>‘
						}
					}
				}
			},
			‘news‘:{
				component:News,
				subRoutes:{
					‘/detail/:id‘:{
						component:Detail
					}
				}
			}
		});

		//5. 啟動路由
		router.start(App,‘#box‘);

		//6. 跳轉
		router.redirect({
			‘/‘:‘home‘
		});
	</script>
</body>
</html>

vue-路由-多層