一、什么是路由
1 、后端路由:对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源
2、 前端路由:对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特点:HTTP请求中不会包含hash相关的内容;所以,单页面程序中的页面跳转主要用hash实现;
3 、在单页面应用程序中,这种通过hash改变来切换页面的方式,称作前端路由(区别于后端路由)
二、如何使用
1 引入js文件,这个js需要放在vue的js后面,自动安装(提供了一个VueRouter的构造方法)
2 创建路由new VueRouter(),接受的参数是一个对象
3 在实例化的对象里配置属性routes:[],这个数组里的对象包含path属性和component属性
4 path属性是url的地址,component属性就是显示的组件(传组件的对象)
5 创建的路由需要和vue实例关联一下
可以简写:对象名和属性名一致的话可以省略属性值
6 路由到的组件显示在哪个位置
设置成功后可以通过修改页面的URL中的hash来继续跳转
三、声明式的路由跳转
我们可以使用router-link to='/这里面放的是要跳转的组件' 他的效果同a标签一样
1、传参:将to变成属性,对象中有path(跳转的地址),query(传递的参数,可以有多个)
接收参数:在当前跳转页面的this中有$route属性,在这里面可以找到我们的各个数据
2、用name传参
在映射关系中新建一个name的属性,同上述的方式一样。同样可以进行跳转
name是跳转,params则是进行传参,他是一个对象
(相较于query传递更安全,但必须传递一个参数)
在映射关系中用/:来拼接一个属性
四、函数式的声明与传参
函数式的跳转是通过定义一个事件来进行跳转,在当前的methods中定义一个次方法
用this.$router.push({})将其声明与参数传递过去
五、路由的重定向
在映射关系中添加,第一个path是要改的地址,第二个是更改为的地址