vue-router API笔记

2020-04-17  本文已影响0人  颖小李

参考资料:vue-router官方API(https://router.vuejs.org/zh/api/

一、<router-link>

(1)<router-link>会被默认渲染成<a>标签,也可以通过tag属性设置渲染成其他标签。当目标路由被激活时,链接元素会自动设置一个表示激活的类名。

(2)使用<router-link>而不直接使用<a>的理由:

    1.<router-link>在history模式和hash模式下,表现行为都一致,并且会自动在IE9自动降级使用hash模式

    2.在history模式下,使用router-link,浏览器不会重新加载页面,a标签点击后会重新加载页面

    3.在history模式下,router-link使用base选项时,to属性可以简写。而a一直要写全路径。

(3)<router-link>的v-slot可以获取到底层的一些属性,用来做定制。使用v-slot时,要向router-link中传入一个单独的子元素,否则会被包裹在span中。

    href:解析后的URL。

    route:解析后的规范化地址。

    navigate:导航函数

    isActive:需要应用激活的class为true

    isExactActive:需要应用精确激活的class时为true

(4) router-link的属性

    to:required,目标路由的链接。

    replace:默认false,不会留下新的history记录

    append:默认false, 导航至相对路径时,是在当前路径的基础上

    tag:可以设置该属性,使router-link渲染成其他标签

    active-class:可以另外设置激活时的类名

    exact:默认false,包含匹配,如果to='/',那么所有路径都会被激活,但如果设置exact,只有'/'才会被激活

    event:设置触发导航的事件

    exact-active-class:另外设置精确匹配时的class

二、router-view

渲染路径匹配到的组件。

如果设置name,就可以有多个视图,在各个命名路由里渲染对应组件

三、Router的构建属性

    routes:[],

    mode:"hash" | "history" | "abstract"(node环境)

    base:'/app/'    .应用的基路径

    linkActiveClass:''

    linkExactActiveClass:''

    scrollBehavior: Function.     定义路由切换时页面如何滚动,只在支持history.pushState的浏览器中可用

    parseQuery/stringifyQuery:Function.    提供自定义查询字符串的解析/反解析函数。覆盖默认行为。

    fallback:默认true.当浏览器不支持history.pushState,是否回退到hash模式。在IE9中,如果是false,会使每个router-link都触发整页刷新。

四、Router实例属性

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

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

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

五、Router实例方法

    router.beforeEach((to, from, next) => {})

    router.beforeResolve((to, from, next) => {})

    router.afterEach((to, from) => {})

    router.push()

    router.replace()

    router.go()

    router.back()

    router.forward()

    router.getMatchedComponents()。    返回当前路由匹配的组件数组,通常在服务端渲染的数据预加载时使用

    router.resolve(location, current?,append?)     解析目标位置

    router.addRoutes(routes:Array<RouteConfig>)     动态添加更多路由规则

    router.onReady(callback, [errorCallback])  在路由完成初始导航时回调

    router.onError(callback) 路由导航出错时调用

六、路由对象

一个路由对象表示当前激活的路由的状态信息。

路由对象时不可变的,每次成功导航后都会产生一个新对象。

(1) 路由对象出现的地方:

    · 在组件内,this.$route

    · 在$route 观察者回调内

    · router.match(location)的返回值

    · 导航守卫的参数  router.beforeEach()里的to、from

    · scrollBehavior()方法的参数to、from

(2) 路由对象的属性

    route.path: '/foo/bar'.    绝对路径

    route.params :Object

    route.query :查询参数

    route.hash:hash值

    route.fullPath : 包含查询参数和hash的完整路径

    route.matched: 数组,包含当前路由的所有嵌套路径片段的路由记录

    route.name

    route.redirectedFrom:如果是重定向来的,则是重定向来源的名称

上一篇下一篇

猜你喜欢

热点阅读