Vue Router

使用路由:

1.引包

2.创建实例化VueRouter对象

3.匹配路由规则

4.挂载new Vue()实例化对象

 

1.基本使用

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div id="app"></div>
	<script type="text/javascript" src="./node_modules/vue/dist/vue.min.js"></script>
	<script type="text/javascript" src="./node_modules/vue-router/dist/vue-router.min.js"></script>
	<script type="text/javascript">
		
		var Login = {  
			data(){
				return{

				}
			},
			template:`
				<div>
					我是登录页面
				</div>
			`
		};

		var Register = {  
			data(){
				return{

				}
			},
			template:`
				<div>
					我是注册页面
				</div>
			`
		};

		var router = new VueRouter({
			routes:[
				{
					path:"/login",
					component:Login
				},
				{
					path:"/register",
					name:'register', //命名路由
					component:Register

				},
			]
		});
		//引入vue-rouuter模块,会抛出两个全局组件
		//1.router-link ==> a to==>href
		//2.router-view==>路由匹配组件出口

		var App = {
			template:`
				<div>
					<!--
					<a herf="">登录页面</a>
					<a herf="">注册页面</a>
					-->
					<router-link to="/login">登录页面</router-link>
					<router-link :to="{name:'register'}">注册页面</router-link>
					<router-view></router-view>
				</div>
			`
		};

		var vm = new Vue({
			el:'#app',
			data(){
				return{

				}
			},
			//挂载子组件
			components:{
				App
			},
			router,
			//父组件可以直接使用
			template:`
				<App></App>
			`
		});
	</script>
	
</body>
</html>

2.路由参数

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div id="app"></div>
	<script type="text/javascript" src="./node_modules/vue/dist/vue.min.js"></script>
	<script type="text/javascript" src="./node_modules/vue-router/dist/vue-router.min.js"></script>
	<script type="text/javascript">
		
		var UserParams = {  
			data(){
				return{

				}
			},
			template:`
				<div>
					我是用户1
				</div>
			`
			,
			created(){
				//抛出两个对象,挂载到Vue实例化对象
				console.log(this.$router);
				console.log(this.$route);
				console.log(this.$route.params.id);
			}
		};

		var UserQuery = {  
			data(){
				return{

				}
			},
			template:`
				<div>
					我是用户2
				</div>
			`
		};

		var router = new VueRouter({
			routes:[
				{
					//动态路由 params
					path:"/user/:id",
					name:'userP',
					component:UserParams
				},
				{
					path:"/user",
					name:'userQ', 
					component:UserQuery

				},
			]
		});
		//引入vue-rouuter模块,会抛出两个全局组件
		//1.router-link ==> a to==>href
		//2.router-view==>路由匹配组件出口

		var App = {
			template:`
				<div>
					<router-link :to="{name:'userP',params:{id:1}}">用户1</router-link>
					<router-link :to="{name:'userQ',query:{userId:2}}">用户2</router-link>
					<router-view></router-view>
				</div>
			`
		};

		var vm = new Vue({
			el:'#app',
			data(){
				return{

				}
			},
			//挂载子组件
			components:{
				App
			},
			router,
			//父组件可以直接使用
			template:`
				<App></App>
			`
		});
	</script>
	
</body>
</html>

3.嵌套路由

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div id="app"></div>
	<script type="text/javascript" src="./node_modules/vue/dist/vue.min.js"></script>
	<script type="text/javascript" src="./node_modules/vue-router/dist/vue-router.min.js"></script>
	<script type="text/javascript">
		
		var Home = {  
			template:`
				<div>
					首页内容
					<br/>
					<router-link to='/home/song'>歌曲</router-link>
					<router-link to='/home/movie'>电影</router-link>
					<router-view></router-view>
				</div>
			`
		};

		var Song = {
			template:`
				<div>歌曲内容</div>
			`
		};

		var Movie = {
			template:`
				<div>电影内容</div>
			`
		};

		var router = new VueRouter({
			routes:[
				{
					path:"/home",
					name:'home',
					component:Home,
					children:[
						{
							path:"song",  //无需加斜杠。因为上一个home后面会自动加斜杠
							component:Song,
						},
						{
							path:"movie",
							component:Movie,
						},
					]
				},
			]
		});
		//引入vue-rouuter模块,会抛出两个全局组件
		//1.router-link ==> a to==>href
		//2.router-view==>路由匹配组件出口

		var App = {
			template:`
				<div>
					<router-link :to="{name:'home'}">首页</router-link>
					<router-view></router-view>
				</div>
			`
		};

		var vm = new Vue({
			el:'#app',
			data(){
				return{

				}
			},
			//挂载子组件
			components:{
				App
			},
			router,
			//父组件可以直接使用
			template:`
				<App></App>
			`
		});
	</script>
	
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值