Vue路由及路由守卫

1. Vue路由的添加

vue cli3添加vue-router通过命令vue  add  router

export default new Router({
    mode: ‘history‘,
    routes: [
        {
            path: ‘/‘,
            component: Main
        },
        {
            path: ‘/login‘,
            component: Login
        }
    ]
})

// app.vue
<div id="app">
    <router-view></router-view>
</div>

// main.vue
<div>
    <router-link to="/"></router-link>
    <router-link to="/login"></router-link>
</div>

2. 路由的重定向

export default new Router({
    mode: ‘history‘,
    routes: [
        {path: ‘/‘, redirect: ‘/main‘}
        // 当只有8080和8080/ 的时候,调到主页
    ]
})

3. 定义子路由

export default new Router({
    routes: [
        {
            path: ‘/‘,
            component: Main
        },
        {
            path: ‘/login‘,
            component: Login
        },
        {
            path: ‘/admin‘,
            component: Admin,
            children: [
                {path: ‘buttons‘, component: Buttons },  // 注意需要使用相对地址
                {path: ‘Tables‘, component Tables }
            ]
        }
    ]
})

// 父级路由存在<router-view></router-view>

4.  路由守卫

  • 全局beforeRouter
  • 路由beforeEnter
  • 组件beforeRouteEnter
const router = new Router({});

router.beforeEach((to, from, next) => {
  //to 前往的路由, from 来的路由, next 下一步钩子函数,没有问题,必须执行next()
  console.log(to);
  if (to.path !== ‘/login‘) {
      if (window.isLogin) {
          next()
      } else {
          next(‘/login?redirect=‘+ to.path)
      }
  } else {
      next()
  }
})

export default router

  

  

原文地址:https://www.cnblogs.com/Xmforever/p/10332227.html

时间: 2024-07-31 13:18:26

Vue路由及路由守卫的相关文章

Vue 嵌套路由、路由守卫

嵌套路由 嵌套路由:一个路由配置中嵌套其他的路由配置. 嵌套路由挺常用的,比如导航栏有首页.文章.想法.留言4个模块,我们以嵌套路由的形式集成这些模块,在导航栏中点击对应的条目,就会路由到对应的页面(下方显示对应的页面),和html的<iframe>效果差不多. demo   嵌套路由 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title><

vue 2.0 路由创建的详解过程

1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <title>Document</title> 7 <script src="vue221.js"></script> 8 <script src="vue-router231.js&qu

新版本的vue在写路由的时候前面不能写 /

新版本的vue在写路由的时候前面不能写   / 错误写法: 正确写法: 原文地址:https://www.cnblogs.com/oklfx/p/8505017.html

vue路由获取路由参数

vue路由设置路由参数有2种方式: 1.通过query配置: <router-link :to="{ name:'login',query:{id:1} }">登录</router-link> 通过query配置的路径显示如下: 2.通过params配置: <router-link :to="{ name:'register',params:{'name':'San'} }">注册</router-link> 通过qu

解决vue单页路由跳转后scrollTop的问题

作为vue的初级使用者,在开发过程中遇到的坑太多了.在看页面的时候发现了页面滚动的问题,当一个页面滚动了,点击页面上的路由调到下一个页面时,跳转后的页面也是滚动的,滚动条并不是在页面的顶部 在我们写路由的时候做个处理,如下: import Vue from 'vue' import Router from 'vue-router' Vue.use(Router); Vue.use(Router) export default new Router({ routes: [ { path: '/',

vue 动态获取路由在对组件进行处理是报错,导致无法进入页面

vue 动态获取路由在对组件进行处理是报错,导致无法进入页面function filterAsyncRouter(asyncRouterMap) { //遍历后台传来的路由字符串,转换为组件对象const accessedRouters = asyncRouterMap.filter(route => { if (route.component) { if (route.component === 'Layout') {//Layout组件特殊处理 route.component = Layou

Vue:vue-router路由

说明 学习的时候,尽量的打开官方的文档 Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.包含的功能有: 嵌套的路由/视图表 模块化的.基于组件的路由配置 路由参数.查询.通配符 基于 Vue.js 过渡系统的视图过渡效果 细粒度的导航控制 带有自动激活的 CSS class 的链接 HTML5 历史模式或 hash 模式,在 IE9 中自动降级 自定义的滚动条行为 安装 基于第一个vue-cli进行测试学习;先查看nod

vue中的导航守卫

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

路由的几个基本概念-直连路由/网关路由/主机路由/网络路由/动态路由/静态路由/默认路由

1.动态路由/静态路由 动态路由 路由选择器自动共享路由信息 自动构造路由表,需要一个路由协议,如RIP或OSPF 静态路由 路由选择器不共享路由信息(单方向路由) 手工构造路由表 2.直连路由/网关路由(间接路由) 其区别在于,发往直连路由的设备中不但具有指明目的端的I P地址,还具有其mac地址. 当报文被发往一个间接路由时,I P地址指明的是最终的目的地,但是mac地址指明的是网关(即下一跳路由器). 3.主机路由/网络路由 直连路由和网关路由是由下一跳区分的,而主机路由和网络路由是由目的

AngularJS之基础-5 路由(定义路由、使用路由)、自定义指令(Directive)

一.定义路由 ng-view - AngularJS 支持通过在单页面上的多个视图的单页应用 - ng-view 标记只是简单地创建一个占位符 - 使用 ng-template - 创建使用script标签的HTML视图 - 使用 - 定义类型作为主模块中 ng-template 的脚本块 $routeProvider - 映射相应的HTML页面或ng-template - 附加一个控制器使用相同键的服务   - 注意: - 需要angular-route.js脚本文件的引用 二.使用路由 锚点