美文网首页
26.vue-router的使用2

26.vue-router的使用2

作者: 黑咔 | 来源:发表于2019-04-02 09:06 被阅读0次

9.编程式路由导航

  1. 作用:不借助<router-link>实现路由跳转,让路由跳转更加灵活

  2. 具体编码:

    //$router的两个API
    this.$router.push({
     name:'xiangqing',
         params:{
             id:xxx,
             title:xxx
         }
    })
    
    this.$router.replace({
     name:'xiangqing',
         params:{
             id:xxx,
             title:xxx
         }
    })
    this.$router.forward() //前进
    this.$router.back() //后退
    this.$router.go(3) //可前进也可后退,正数前进,负数后退
    

10.缓存路由组件

  1. 作用:让不展示的路由组件保持挂载,不被销毁。

  2. 具体编码:

    <keep-alive include="News"> 
        <router-view></router-view>
    </keep-alive>
    

11.两个新的生命周期钩子

  1. 作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态。
  2. 具体名字:
    1. activated路由组件被激活时触发。
    2. deactivated路由组件失活时触发。

12.路由守卫

  1. 作用:对路由进行权限控制

  2. 分类:全局守卫、独享守卫、组件内守卫

  3. 全局守卫:

    //全局前置守卫:初始化时执行、每次路由切换前执行
    router.beforeEach((to,from,next)=>{
     console.log('beforeEach',to,from)
     if(to.meta.isAuth){ //判断当前路由是否需要进行权限控制
         if(localStorage.getItem('school') === 'WestPoint'){ //权限控制的具体规则
             next() //放行
         }else{
             alert('暂无权限查看')
             // next({name:'guanyu'})
         }
     }else{
         next() //放行
     }
    })
    
    //全局后置守卫:初始化时执行、每次路由切换后执行
    router.afterEach((to,from)=>{
     console.log('afterEach',to,from)
     if(to.meta.title){ 
         document.title = to.meta.title //修改网页的title
     }else{
         document.title = 'vue_test'
     }
    })
    
  4. 独享守卫:

    //独享守卫只有before,没有after
    beforeEnter(to,from,next){
     console.log('beforeEnter',to,from)
     if(to.meta.isAuth){ //判断当前路由是否需要进行权限控制
         if(localStorage.getItem('school') === 'WestPoint'){
             next()
         }else{
             alert('暂无权限查看')
             // next({name:'guanyu'})
         }
     }else{
         next()
     }
    }
    
  5. 组件内守卫:

    //进入守卫:通过路由规则,进入该组件时被调用
    beforeRouteEnter (to, from, next) {
    },
    //离开守卫:通过路由规则,离开该组件时被调用(不常用)
    beforeRouteLeave (to, from, next) {
    }
    

13.路由器的两种工作模式

  1. 对于一个url来说,什么是hash值?—— #及其后面的内容就是hash值。
  2. hash值不会包含在 HTTP 请求中,即:hash值不会带给服务器。
  3. hash模式mode: 'hash'
    1. 地址中永远带着#号,不美观 。
    2. 若以后将地址通过第三方手机app分享,若app校验严格,则地址会被标记为不合法。
    3. 兼容性较好。
  4. history模式mode: 'history'
    1. 地址干净,美观 。
    2. 兼容性和hash模式相比略差。
    3. 应用部署上线时需要后端人员支持,解决刷新页面服务端404的问题。

相关文章

  • 26.vue-router的使用2

    9.编程式路由导航 作用:不借助实现路由跳转,让路由跳转更加灵活 具体编码://$rou...

  • Docker的使用(2)

    Docker可以粗略的理解为轻量级的虚拟机。 我们在docker容器中做的操作都是暂时的 Dockerfile 通...

  • Gson的使用-2

    Gson序列化空值 Gson在序列化的null值的时候,会自动忽略掉该字段,如果我们不想将其忽略,可以作如下设置;...

  • urllib的使用(2)

    在Python3.x中,urllib包下有四个模块分别是 urllib.request(python2.x的url...

  • Charles的使用(2)

    本文的内容主要包括: 修改网络请求内容 给服务器做压力测试 修改服务器返回内容 反向代理 设置外部代理,解决与翻墙...

  • APT的使用2

    APT(Annotation Processing Tool) 注解编译时工具。现在越来越多的框架使用apt技术来...

  • RecyclerView的使用(2)

    RecyclerView设置分割线 RecyclerView的分割线去设置布局?太low了!RecyclerVie...

  • 2、Cydia的使用

    越狱完之后手机上会有一个Cydia 一、是个啥? 就是越狱之后的AppStore,可以在Cydia中安装各种插件、...

  • 插件的使用2

    Jquery图片无缝连续循环滚动 支持上下左右的滚动http://www.jq22.com/jquery-info...

  • redis的使用2

    命令1.keys *2.exists key的名字,判断某个key是否存在。3.move key db ---...

网友评论

      本文标题:26.vue-router的使用2

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