zoukankan      html  css  js  c++  java
  • Vue-router

    路由导航守卫-beforeEach

    如果用户没有登陆,直接通过URL访问特定的页面,这样的话我们需要重新将其导航到登陆页面。

    login(){
        this.$refs.loginFormRef.validate( async valid =>{
            console.log(valid);
            if (!valid) return;
            const {data:res}= await this.$axios.post("login/loginCheckOut",this.loginForm);
            if(res.code!=200) return this.$message.error('登录失败!');
            this.$message.success('登录成功!');
            //将登录成功后的token保存到客户端的sessionStorage中
            window.sessionStorage.setItem("token",res.data.token);
            //通过编程式导航跳转到后台主页
            this.$router.push('/home');
        });
    }
    import Vue from 'vue'
    import Router from 'vue-router'
    import Login from "../components/Login";
    import Home from "../components/Home";
    
    
    Vue.use(Router);
    
    //接收路由对象
    const router = new Router({
      routes: [
        {path: '/', redirect: '/login'},//重定向
        {path: '/login', component: Login},
        {path: '/home', component: Home}
      ]
    });
    
    //挂载路由导航守卫-beforeEach
    router.beforeEach((to, from, next) => {
      //to 将要访问的路径
      //from 代表从哪个路径跳转而来
      //next 是一个函数,表示放行
      //next() 放行   next('/login')  强制跳转
    
      if (to.path === '/login') return next();
      const tokenStr=window.sessionStorage.getItem('token');
      if (!tokenStr) return next('/login');
      next();
    });
    
    //暴露路由对象
    export default router;
    

    路由占位符

    <template>
      <div id="app">
        <!--路由占位符-->
        <router-view/>
      </div>
    </template>
    
    <script>
    export default {
      name: 'App'
    }
    </script>

    重定向

    import Vue from 'vue'
    import Router from 'vue-router'
    import Login from "../components/Login";
    
    
    Vue.use(Router)
    
    export default new Router({
      routes: [
        {
          path: '/',
          redirect: '/login'  //重定向
        },
        {
          path: '/login',
          component: Login
        }
      ]
    })




  • 相关阅读:
    重读SQLServer技术内幕 -- 故障检测概要
    Android Studio调试React Native项目
    Android 异常处理
    第一天
    记一次"未将对象引用设置到对象的实例"问题的排查过程
    Hyper-V连接虚拟机异常,“无法进行连接,因为可能无法将凭据发送到远程计算机”
    关于TFS2012无法发送警报邮件的问题
    BaseAdapter日常的封装
    android自定义拍照
    Android系统拍照源码
  • 原文地址:https://www.cnblogs.com/agoodmanisme/p/1d75636e402bcb4c03d28bd9f69ba540.html
Copyright © 2011-2022 走看看