• 技术文章 >web前端 >js教程

    在vue中如何实现跳转到之前页面

    亚连亚连2018-06-13 14:02:08原创1218
    本文给大家分享了vue实现登录后页面跳转到之前页面的一个功能,有这方便需要的朋友学习参考下吧。

    在开发中我们经常遇到这样的需求,需要用户直接点击一个链接进入到一个页面,用户点击后链接后会触发401拦截返回登录界面,登录后又跳转到链接的页面而不是首页,这种问题该如何去做呢?

    先说一下我们需要用到的几个API:

    1.router.currentRoute:当前的路由信息对象,我们可以通过router.currentRoute.fullPath获得解析后的 URL,包含查询参数和 hash 的完整路径,如果要访问的页面的路由有命名(name)的话,可以通过router.currentRoute.name获得当前路由的名称。

    2.router.replace:作用和router.push相同,不过它不会向history添加新纪录,而是替换当前的history记录。

    由于大家的代码写的都不一样,我就不放我具体的实现代码,简单介绍一下思路:

    1.用户点开链接后,跳转到的目标的路由页面,然后触发401拦截器,返回登录页面:

    //401拦截
    if(status == "401"){
      router.push("/login")   
    }

    2.我们可以在401拦截的时候将目标链接保存在url中:

    if (status == 401) {
       //判断当前的路由是否是目标路由
       if(router.currentRoute.name == "target"){
        //跳转回login路由,并把目标路由的url路径保存在login的query中
        router.replace({
         name:"login",
         query: {redirect: router.currentRoute.fullPath}
        })
       }else{
        /* 普通401拦截直接返回到登录页面 */
        router.push('/login');
       }
      }

    3.点击登录后使用url上保存的query直接跳转回目标页面

    router.push({path:decodeURIComponent(url)});

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    vuex之详细介绍中文文档

    纯js如何生成下拉列表

    在vue中有关文件使用方式

    在vue-cli webpack中如何引入jquery(详细教程)

    以上就是在vue中如何实现跳转到之前页面的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:vue 登录后跳转
    上一篇:在Bootstrap框架里使用treeview如何实现动态加载数据 下一篇:在Nginx中如何配置多站点vhost
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• JavaScript迭代器知识点总结• 简单了解JavaScript数据结构与算法之栈• 11个可以提升效率的chrome调试技巧• 一文搞定JavaScript的节点操作• javascript web页面刷新的方法收集_javascript技巧
    1/1

    PHP中文网