$router和$route的区别

$router和$route的区别

起步 | Vue Router

Vue Router是Vue.js的路由管理器,路由就是SPA单页应用的访问路径,在Vue实例内部,可以通过$router访问路由实例,即在路由定义文件中export default的new Router(/*...*/)路由实例,通过$route可以访问当前激活的路由的状态信息,包含了当前URL解析得到的信息,还有URL匹配到的路由记录,可以将$router理解为一个容器去管理了一组$route,而$route是进行了当前URL和组件的映射。

$router对象属性

$router.app: 配置了router的Vue根实例。

$router.mode: 路由使用的模式。

$router.currentRoute: 当前路由对应的路由信息对象。

$router对象方法

$router.beforeEach(to, from, next): 全局前置守卫,守卫是异步解析执行,此时导航在所有守卫resolve完之前一直处于等待中状态,守卫方法接收三个参数: to: Route即将要进入的目标路由对象、from: Route: 当前导航正要离开的路由、next: Function: 调用该方法来resolve这个钩子,执行效果依赖next方法的调用参数,例如next()、next(false)、next('/')、next({path:'/',name:'home',replace:true,query:{q:1}})、next(error)等,通常在main.js中import的Vue Router实例中直接定义导航守卫,当然也可在Vue实例中访问$router来定义。

$router.beforeResolve(to, from, next): 全局解析守卫,在beforeRouteEnter调用之后调用,同样接收to、from、next三个参数。

$router.afterEach(to, from): 全局后置钩子,进入路由之后调用,接收to、from两个参数。

$router.push(location[, onComplete[, onAbort]]): 编程式导航,使用$router.push方法导航到不同的URL,此方法会向history栈添加一个新的记录,当点击浏览器后退按钮时,则回到之前的URL。

$router.replace(location[, onComplete[, onAbort]]): 编程式导航,跟$router.push很像,唯一的不同就是,其不会向history添加新记录,而是跟它的方法名一样替换掉当前的history记录。

$router.go(n): 编程式导航,这个方法的参数是一个整数,意思是在history记录中向前或者后退多少步,类似window.history.go(n)。

$router.back()$router.back: 编程式导航,后退一步记录,等同于$router.go(-1)。

$history.forward(): 编程式导航,前进一步记录,等同于$router.go(1)。

$router.getMatchedComponents([location]): 返回目标位置或是当前路由匹配的组件数组 ,是数组的定义或构造类,不是实例,通常在服务端渲染的数据预加载时使用。

$router.resolve(location[, current[, append]]): 解析目标位置,格式和<router-link>的to prop相同,current是当前默认的路由,append允许在current路由上附加路径,如同 router-link。

$router.addRoutes(route): 动态添加更多的路由规则,参数必须是一个符合routes选项要求的数组。

$router.onReady(callback[, errorCallback]): 该方法把一个回调排队,在路由完成初始导航时调用,这意味着它可以解析所有的异步进入钩子和路由初始化相关联的异步组件,这可以有效确保服务端渲染时服务端和客户端输出的一致,第二个参数errorCallback会在初始化路由解析运行出错时被调用。

$router.onError(callback): 注册一个回调,该回调会在路由导航过程中出错时被调用,被调用的错误必须是下列情形中的一种,错误在一个路由守卫函数中被同步抛出、错误在一个路由守卫函数中通过调用next(err)的方式异步捕获并处理、渲染一个路由的过程中需要尝试解析一个异步组件时发生错误。

$route对象属性

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

$route.params: 返回一个key-value对象,包含了动态片段和全匹配片段,如果没有路由参数,就是一个空对象。

$route.query: 返回一个key-value对象,表示URL查询参数。

$route.hash: 返回当前路由的带#的hash值,如果没有hash值,则为空字符串。

$route.fullPath: 返回完成解析后的URL,包含查询参数和hash的完整路径。

$route.matched: 返回一个数组,包含当前路由的所有嵌套路径片段的路由记录,路由记录就是routes配置数组中的对象副本。

$route.name: 如果存在当前路由名称则返回当前路由的名称。

$route.redirectedFrom: 如果存在重定向,即为重定向来源的路由的名字。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容