vue-router3复习

动态路由匹配

        动态路径参数,以:开头

           {path:"user/:id",component:  User}      可以通过$route.params获取参数

            动态参数改变,但路由是相同的页面不会重新渲染,生命周期里的方法不会重新调用

            可以监听当前路由信息

            watch:{

                        $route(to,from){

                        }

            }

            或者通过导航守卫beforeRouteUpdate(to,from,next)

{path:"*"}匹配所有路由,通常用于404页面

linkActiveClass  全局配置激活的样式

 嵌套子路由

            routes:[

                    {

                            path:"/user/:id",

                            component: User,

                            children:[path:"info",component:Info] // 以/为开头的嵌套路径,会被当为根路径,所以子路由不用/开头

                    }

            ]

            在子组件里写上<router-view />子路由会渲染在里面

            当路由为/user/18不会渲染任何东西,可以添加空字符串的子路由,会默认渲染

            {path:"",component: defaultCom}

编程式导航

            $router.push({

                    path: ""

                    params: {}  // 当提供path时,该属性会被忽略

                    query:{}

                    name:""  // 路由名称

            })


                $rouer.replace()    $rouer.go()    

命名路由

                给路由提供name属性,后续可以通过name来跳转

                <router-link  :to="{name:'user'}"

命名视图

                同一路由渲染多个<router-view/>


重定向和别名

                重定向 redirect     {path:"/",redirect:"/home"}

                别名 alias   {path:"/a",alias:"/b"}   /a   /b 都可以访问到

路由组件传参

                 设置props:true,会被设置为组件属性

                {path:"user/:id",component:User,props:true} 

                组件内props:["id"]

                 命名视图内  props:{ default: true,comname:false } 分开设置

                对象模式 props:{ attrname: value } 同样在组件里props:["attrname"]就可以访问到

                函数模式,参数为当前路由,可以把路由信息返回  (route)=>({ query:route.query })

导航守卫

                全局前置导航  router.beforeEach(to,from,next)


                全局后置钩子 router.afterEach(to,from)  不能中止导航,可以做一些完成导航之后的事情

                路由独享的导航 beforeEnter(to,from,next)  配置在路由里

                    {

                            path:"/user", beforeEnter(to,form,next)

                    }

                组件内的守卫    beforeRouteEnter   beforeRouteLeave  beforeRouteUpdate


      路由元信息

                    在定义路由时配置meta字段

                                {

                                        path:"",meta:{  requiresAuth: true  }

                                }

                    可以在$route.matched中访问到,可以在全局路由前置守卫中访问拦截,比如部分页面需要登录


滚动行为  只有浏览器默认的后退可以触发

            scrollBehavior(to,from,savePositon){

             return  {  selector:"",behavior:"smooth",x:0,y:0 }

<router-link>

            作用域插槽 v-slot

             

            <router-link replace     push变成replace

            tag 变换dom

            active-class  单独设置高亮的样式

            exact全匹配时候才会高亮

            event声明用来触发的事件

            exact-active-class 全部匹配时高亮的样式

            

            mode  

            base

            linkExactActiveClass    

            router.mode    router.app 挂载的应用实例  router.currentRoute   router.START_LOCATION 路由的初始地址

            router.push  router.go  router.replace  router.forward   router.back

            router.addRoute()


               router.getRoutes 返回所有活跃的路由列表

               router.onReady

               router.onError(callback)    可以通过全局前置守卫的next(Error)触发

                

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Vue Router 是Vue.js[http://cn.vuejs.org/]官方的路由管理器。它和 Vue.j...
    SY阅读 3,961评论 0 0
  • 简介 Vue Router[https://next.router.vuejs.org/] 是 Vue[https...
    Whyn阅读 7,429评论 0 1
  • 路由介绍 Vue router是 Vue.js的官方路由管理器,用于构建单页面项目,在安装Vue-cli时,选择...
    听书先生阅读 3,709评论 0 1
  • 路由,其实就是指向的意思,当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击页面上的about...
    裘马轻狂大帅阅读 4,073评论 0 5
  • 路由实现的方式 声明式。<router-link :to="..."> 编程式。router.push(...) ...
    SailingBytes阅读 4,839评论 1 3

友情链接更多精彩内容