Vue2.0路由篇之路由跳转的一个小问题

Vue2.0路由篇之路由跳转的一个小问题

  • Vue2.0路由篇之路由跳转的一个小问题
    • 需求分析
    • 实现过程
    • 遇到问题
    • 解决过程
    • 心得体会

本文涉及到的知识点有Vue(v2.5.3)、vue-router(v3.0.1)、vuex(v3.0.1)
vue的基础知识请参考vue官方网站
关于路由的基础知识请参考vue-router官方网站
有关Vuex的基础知识请参考vuex官方网站

在看完一些vue教程、vue官方文档后,手痒痒想写点东西,于是就从最简单的登陆页面开始。结果遇到一个问题,困扰3天。今天终于按照最初设想搞定了,特意把其中的坑分享出来^^。

需求分析

  1. 使用localhost:3000与localhost:3000/login打开网页的时候,都会显示登陆页面

  2. 账号有两种:管理员、普通用户。使用管理员登陆时,url为 localhost:3000/admin;使用普通账号登陆时,url为 localhost:3000/user

实现过程

  1. 这步很简单,在router中配置redirect参数即可。
export default [
    {
        path: "/",
        component: Login,
        children: [
            {
                path: "login",
                component: Login
            }
        ]
    }
]

实现效果如下图:
Vue2.0路由篇之路由跳转的一个小问题_第1张图片

  1. 新增两个组件:Admin、User。
    再在代码里配置两个账号,管理员:admin,密码:admin;普通用户:user,密码:1234。
    最后添加路由:
export default [
    {
        path: "/",
        component: Login,
        children: [
            {
                path: "login",
                component: Login
            },
            // 添加的路由
            {
                path: "user",
                component: User
            },
            {
                path: "admin",
                component: Admin
            }
        ]
    }
]

当我信心满满的打开localhost:3000,输入用户名密码后。。。

遇到问题

  1. 阿西吧,页面没有跳转!但是控制台显示登陆成功,地址栏也变为localhost:3000/user了,为什么就是没跳转呢?输入localhost:3000/login时,明明可以跳转,为什么localhost:3000/user就不行了?
    Vue2.0路由篇之路由跳转的一个小问题_第2张图片

  2. 尝试手动输入localhost:3000/user,依然没有跳转。接下来就是痛苦的找解决方法的过程,包括问某度、查阅官方文档、检查代码。。。。。。。然而2天后。。。。。。依然没头绪。。。。。。

解决过程

  1. 在此期间,倒是找到一种方法可以实现相同的效果,那就是vue的component标签,这是vue的动态组件功能,把我的app.vue模板从