美文网首页
vue-router

vue-router

作者: 撕心裂肺1232 | 来源:发表于2019-06-06 18:11 被阅读0次

    关于路由的参考:vue-router总结 https://www.tuicool.com/articles/J3ArAri
    https://github.com/superman66/vue-axios-github

    Vue多页路由与模板解析:http://blog.poetries.top/2019/06/01/vue-router-and-template-analyse/

    路由的基本用法

    router/index.js文件

    import Vue from 'vue'
    import VueRouter from 'vue-router'
    
    import Index from './index.vue'
    import Repository from './repository.vue'
    import Login from './login.vue'
    
    Vue.use(VueRouter)
    
    const routes = [
        {
            path: '/',
            name: '/',
            component: Index
            //component: resolve => require(['Index路径.vue'],resolve)  按需加载 
        },
        {
            path: '/repository',
            name: 'repository',
            meta: {                           //有这个属性的,表示需要登陆
                requireAuth: true,
            },
            component: Repository
            //component: resolve => require(['Repository路径.vue'],resolve)  按需加载
        },
        {
            path: '/login',
            name: 'login',
            component: Login
            //component: resolve => require(['Login路径.vue'],resolve)  按需加载
        }
    ];
    
    const router = new VueRouter({
        routes
    });
    
    router.beforeEach((to, from, next) => {
        if (to.matched.some(r => r.meta.requireAuth)) {            //判断该路由是否需要登录权限
            if (store.state.token) {                               // 通过vuex state获取当前的token是否存在
                next();
            }
            else {
                next({
                    path: '/login',
                    query: {redirect: to.fullPath}                // 将跳转的路由path作为参数,登录成功后跳转到该路由。     fullPath匹配路由,path匹配路径,2者不同
                })
            }
        }
        else {
            next();
        }
    })
    
    export default router;
    
    

    main.js文件

    import Vue from 'vue'
    import router from './router'
    
    new Vue({
        el: '#app',
        router,                      //注入router
        render: h => h(App)
    }).$mount('#app');
    

    相关文章

      网友评论

          本文标题:vue-router

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