美文网首页
vue-router API笔记

vue-router API笔记

作者: 颖小李 | 来源:发表于2020-04-17 14:07 被阅读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:如果是重定向来的,则是重定向来源的名称

    相关文章

      网友评论

          本文标题:vue-router API笔记

          本文链接:https://www.haomeiwen.com/subject/monsvhtx.html