zoukankan      html  css  js  c++  java
  • 路由vue-router

    之前构建说了有个目录是路由配置,现在说些项目里用到的路由配置吧

    首先肯定是引入router(在构建项目的时候已经安装了vue-router):  

        在main.js加入这句话     import router from './router';

    我的路由页面 分三部分,分别是:

        1.各个页面的路由配置:例

                {path: '/Dir',
                 name: '首页',
                 component: resolve => require(['@/components/page/home/Dir'], resolve),meta:{requireAuth: true }
     
                        meta设置是否需要导航首位
                  resolve=>require这样写可以去调用相应页面的时候去加载相应页面(解决首次加载慢)
        2.项目的路由类别(hash/history)
            
                const router = new Router({
                         mode: 'hash',
                         routes});

                想了解hash和history的区别,点击这里 

        3.导航守卫:     

         router.beforeEach((to, from, next) => {
            if (to.meta.requireAuth) {                 //判断页面地址是否需要守卫
              if (sessionStorage.getItem('token')) { 
                next()
              } else {
                next({           //进入守卫,不满足跳回登陆页
                  path: '/Login',
                  })}} else {
                    next()}})
     
    另:附上router跳转
      标签:<router-link to="Dir">Home</router-link>
      js:  this.$router.push({path: '/ClassList'})
      在vue项目打开新窗口(window.open('url'))
     

    最后奉上完整代码,以供参考

    import Vue from 'vue';
    import Router from 'vue-router';

    Vue.use(Router)

    const routes = [
    {
    path: '/',
    redirect: '/Login'
    },
    {
    path: '/Login',
    name: '登陆',
    component: resolve => require(['@/components/page/login/Login'], resolve),
    }, {
    path: '/',
    component: resolve => require(['@/components/common/Home'], resolve),
    name: '页面结构',
    meta: {
    requireAuth: true,
    },
    children: [
    {
    path: '/Dir',
    name: '首页',
    component: resolve => require(['@/components/page/home/Dir'], resolve),meta:{requireAuth: true }
    }, {
    path: '/incomeOverview',
    name: '收入/概况',
    component: resolve => require(['@/components/page/income/Overview'], resolve),meta:{requireAuth: true }
    }
    ]
    }]

    const router = new Router({
    mode: 'hash',
    routes
    });


    router.beforeEach((to, from, next) => {
    if (to.meta.requireAuth) {
    //这里放入我们的存的token
    if (sessionStorage.getItem('token')) {
    next()
    } else {
    next({
    path: '/Login',
    })
    }
    } else {
    next()
    }
    })

    export default router
        
  • 相关阅读:
    sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock
    redis常用命令大全
    MySQL explain使用
    rabbitmq添加user及vhost
    Make sure you've included captcha.urls as explained in the INSTALLATION section on
    django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applie
    ARM实验5 —— 按键中断实验
    ARM实验4—按键轮询实验
    ARM实验3 ——串口实验
    ARM实验2 —— 蜂鸣器实验
  • 原文地址:https://www.cnblogs.com/hanchongyang/p/8296395.html
Copyright © 2011-2022 走看看