IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> router路由的学习笔记 -> 正文阅读

[JavaScript知识库]router路由的学习笔记

router路由学习笔记

一、router路由的介绍

router是由vue官方提供的用于实现组件跳转的插件,其目的就是为了简化前端的一些资源跳转交互的一些繁琐操作

二、路由插件的使用(两种方式)

2.1、使用离线方式

<script type="text/javascript" src="js/vue.js"></script>
<script type="text/javascript" src="js/vue-router.js"></script>

2.2、使用在线CDN方式使用(前提是网络要好)

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

三、路由学习的简单使用案例

3.1、使用路由流程的三步骤:

  • 第一步、定义连接跳转的模板(组件)
  • 第二步、定义路由
  • 第三步、引用路由

3.2、案例如下

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>router的使用</title>
		<style type="text/css">
			body{padding: 0px;margin: 0px;}
			ul{list-style: none;}
			ul li{display: inline;float: left;margin-left: 15px;}
			ul li a{text-decoration: none; color: white;font-size: 18px; font-weight: bold;}
		</style>
		<script type="text/javascript" src="js/vue.js"></script>
		<script type="text/javascript" src="js/vue-router.js"></script>
	</head>
	<body>
		<div id="container">
			<div style="width: 100%; height: 70px; background: #00BFFF;">
				<table>
					<tr>
						<td><img src="img/logo.png" height="70" style="margin-left: 100px;"/></td>
						<td>
							<ul>
								<li><router-link to="/a">首页</router-link></li>
								<li><router-link to="/b">Java</router-link></li>
								<li><router-link to="/c">HTML5</router-link></li>
								<li><router-link to="/d">Python</router-link></li>
								<!-- <li><a href="#">首页</a></li>
								<li><a href="#">Java</a></li>
								<li><a href="#">HTML5</a></li>
								<li><a href="#">Python</a></li> -->
							</ul>
						</td>
					</tr>
				</table>				
			</div>
			<div style="width: 100; height: 680px; background: lemonchiffon;">
				<router-view></router-view>
			</div>
		</div>
		<script type="text/javascript">
			//vue的路由旨在为单页面应用开发提供便捷
			
			//第一步、定义连接跳转的模板(组件)
			const t1={template:`<p>index</p>`};
			const t2={template:`<p>Java</p>`};
			const t3={template:`<p>HTML5</p>`};
			const t4={template:`<p>Python</p>`};
			
			//第二步、定义路由
			const myrouter=new VueRouter({
				routes:[
					{path:"/a",component:t1},
					{path:"/b",component:t2},
					{path:"/c",component:t3},
					{path:"/d",component:t4}
				]
			});
			//第三步、引用路由
			var vm=new Vue({
				el:"#container",
				router:myrouter
			});			
		</script>
	</body>
</html>

四、动态路由匹配

4.1、通配符

可以匹配任意路径

例如:

  • "/user-*"匹配所有以"user-"开头的任意路径

  • "/*"匹配所有路径

const myrouter=new VueRouter({
routes:[
{path:"/user-*",component:...},
{path:"/*",component:...}
]
});

注意:如果使用通配符定义路径,需要注意路由声明的顺序

4.2、路由参数

<div id="container">
    <li><router-link to="/a/101">首页</router-link></li>
    <router-view></router-view>
</div>
<script type="text/javaScript">
    const t1={template:`<p>index:{{$route.params.id}}</p>`}
    const myrouter=new VueRouter({
        routes:[
            {path:"/a/:id",component:t1}
        ]
    });
    
    var vm=new Vue({
        el:"#container",
        router:myrouter
        
    });
</script>

4.3、优先级问题

如果一个路径匹配了多个路由,则按照陆游的配置孙旭:路由定义的越早优先级就越高

五、嵌套路由

5.1、说明

所谓嵌套路由就是在一级别路由中相显示二级路由

5.2、案例如下

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>嵌套路由的使用</title>
		<script type="text/javascript" src="js/vue.js"></script>
		<script type="text/javascript" src="js/vue-router.js"></script>
		
		
		
	</head>
	<body>
		<div id="container">
			<router-link to="/a">首页</router-link>
			<router-link to="/a/c1">首页-1</router-link>
			<router-link to="/a/c2">首页-2</router-link>
			<router-view></router-view>
			
		</div>
		
		<script type="text/javascript">
			const t1={template:"<div style='width:400px;hright:200px;border:blue 1px solid'>index<hr/><router-view></router-view></div>"};
			
			const t2={template:`<div>t2</div>`};
			const t3={template:`<div>t3</div>`};
			
			const myrouter =new VueRouter({
				routes:[
					{
						path:"/a",
						component:t1,
						children:[
							{path:"c1",
							component:t2
							},
							{path:"c2",
							component:t3
							}
							
						]
					}
					
				]
			});
			
			var vm=new Vue({
				el:"#container",
				router:myrouter
			});
			
		</script>
	</body>
</html>

六、编程式导航

6.1、案例演示

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>嵌套路由的使用</title>
		<script type="text/javascript" src="js/vue.js"></script>
		<script type="text/javascript" src="js/vue-router.js"></script>	
	</head>
	<body>
		<div id="container">
			<button type="button" @click="test">按钮</button>
			<!-- <router-link to="/a">首页</router-link> -->
			<router-view></router-view>		
		</div>		
		<script type="text/javascript">
			const t1={template:"<div style='width:400px;hright:200px;border:blue 1px solid'>index</div>"};						
			
			const myrouter =new VueRouter({
				routes:[
					{
						path:"/a",
						component:t1						
					}		
				]
			});			
			var vm=new Vue({
				el:"#container",
				router:myrouter,
				methods:{
					test:function(){
						//路由跳转,由js代码实现路由跳转 便成为编程式导航
						myrouter.push("/a");
					}
				}
			});		
		</script>
	</body>
</html>

6.2、了解push()的参数

<!--两种语法-->
<!--语法一、-->
myrouter.push("/a");
<!--语法二、-->
myrouter.push({pash:"/a"});

6.3、常用的push()使用方式

var vm=new Vue({
				el:"#container",
				router:myrouter,
				methods:{
					test:function(){
						//路由跳转,由js代码实现路由跳转 便成为编程式导航
						//myrouter.push("/a");
						//2、对象
						//myrouter.push({path:"/a"});
						//3、命名的路由 name 参数指的是定义路由时指定的名字
						//myrouter.push({name:"r1",params:{id:101}});
						//url传参用的比较少
						myrouter.push({path:"/a",query::{id:101}});
					}
				}
			});

replace() 功能与push一致,区别在于replace()不会向history添加新的浏览记录

go() 参数为一个整数,表示在浏览器历史记录中前后/后退多少步 相当于window.history.go(-1),的作用

6.4、命名路由

在定义路由的时候可以指定 name ,在进行路由导航的时候可以通过路由的名字导航(很少用)

7、总结

今天的学习内容暂时告一段落,对于router的学习这只是冰山一角,我最近主要是为了做毕业设计才对这一块知识进行的一个回顾,内容的话应该在基本使用上是完全够的。后续 我会在学习的旅程中 慢慢对以前的知识进行完善补充,毕竟我还是一个学生还没正式开始成为一个开发者,慢慢来吧

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 11:54:34  更:2021-10-17 11:56:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 14:36:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码