vue关于路由

import Home from '../components/Home';
import Login from '../components/Login';
import Register from '../components/Register';
import MessageCenter from '../components/Message-center';
import service from '../services/services';

import VueRouter from 'vue-router';
const router = new VueRouter();

export default {
    routes: [
        { path: '/home', component: Home },
        { path: '/login', component: Login },
        {
            path: '/message',
            component: MessageCenter,
            beforeEnter: (to, from, next) => {
                // let name = localStorage.userName;
                // service.checkLog(name)
                //     .then(res => {
                //         let data = res.data;
                //         if (data.isLogin == false) {
                //             localStorage.isLogin = false;
                //             router.push({ path: '/login' });
                //         } else {
                //             localStorage.isLogin = true;
                //         }
                //     })
                //     .catch(err => console.log(err));

                let isLogin = JSON.parse(localStorage.isLogin);
                if(!isLogin){
                    console.log('executed!'); //这句话执行了
                    router.push({ path: '/login' }); //为什么不转跳到Login组件,而是直接跳到了个人中心?
                    
                }
                next();
            }
        },
        { path: '/register', component: Register },
        { path: '*', redirect: '/home' }
    ]
}

下面这的语句是执行的,但是却没转跳到login组件,而是直接转跳到了message center,为什么呢?

if(!isLogin){
    console.log('executed!');
    router.push({ path: '/login'});
}
阅读 1.8k
1 个回答

你试试 这样子加上 Vue.use(VueRouter); 或者怎么写 router.push({ path: 'login'});

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题