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
        
  • 相关阅读:
    Mysql元数据分析
    python编码encode和decode
    自己写的Python数据库连接类和sql语句拼接方法
    【甘道夫】Sqoop1.99.3基础操作--导入Oracle的数据到HDFS
    SVN配置以及自己主动部署到apache虚拟文件夹
    css中使用id和class 的不同
    Android OpenGL ES(七)----理解纹理与纹理过滤
    一键安装 redmine on windows 和发邮件设置
    足球大数据:致足球怀疑论者-The Counter(s)-Reformation反教条改革
    【Android进阶篇】Fragment的两种载入方式
  • 原文地址:https://www.cnblogs.com/hanchongyang/p/8296395.html
Copyright © 2011-2022 走看看