vue学习篇:router与route的区别

164 阅读1分钟

前言

最近在做的实训项目是vue项目,所以自然而然也用到了VueRouter。在开始的时候,自己对 routerrouter 和 route 这两者其实并不了解,后来看了网上的文章也懂了一些。

$router

router对象是全局路由的实例,是router构造方法的实例。

1、router-link本质是向history栈中添加一个路由,当我们点击浏览器的返回按钮时可以看到之前的页面。

1、push方法其实和<router-link :to="...">是等同的。

2、this.$router.go(-1) 页面路由的后退。

3、this.$router.replace() push方法会向 history 栈添加一个新的记录,而replace方法是替换当前的页面,不会向 history 栈添加一个新的记录。

$route

$route对象表示当前的路由信息,包含了当前 URL 解析得到的信息。包含当前的路径,参数,query对象等。

1、$route.path字符串,对应当前路由的路径,总是解析为绝对路径。

2、$route.paramskey/value 对象,包含了 动态片段 和 全匹配片段,如果没有路由参数,就是一个空对象。

3、$route.querykey/value 对象,表示 URL 查询参数。如果没有查询参数,则是个空对象。

4、$route.name当前路径名字,如果没有使用具名路径,则名字为空。

5、$route.matched数组,包含当前匹配的路径中所包含的所有片段所对应的配置参数对象。

params和query的区别

1、params参数在地址栏中不会显示,query会显示。

2、query相当于get请求 params相当于post请求。

3、query传参通过path跳转,params传参通过name跳转,分别是用this.props.match.query.namethis.props.match.params.name来接收。

4、params一旦设置在路由,就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。

5、query是拼接在url后面的参数,没有也没关系。

6、params、query不设置也可以传参,params不设置的时候,刷新页面或者返回参数会丢失。

来源:CSDN