当前位置:首页 > 技术文章 > 正文内容

Vue中的路由配置常用属性(vue路由配置步骤)

zonemu3个月前 (07-12)技术文章34

router:路由

页面跳转的核心库;

引入路由:import VueRouter from 'vue-router';
注册路由:const router = new VueRouter({
})

mode:模式

路由有hash history两种模式:

hash模式URL中包含#,#后边是路径名称;

const router = new VueRouter({
 		mode: 'hash',
})

history模式URL中不包含#,域名后边直接就是路径名称;

const router = new VueRouter({
 		mode: 'history',
})

base:基路径

默认是“/”,当设置基路径的时候,访问http://localhost:8080/和访问
http://localhost:8080/home是一样的

const router = new VueRouter({
 		base: '/home',
})

routes:路径集合

给每个页面配置指定路径信息,通过匹配路径信息跳转到指定页面,数据结构为数组结构;

const router = new VueRouter({
 		routes:[
      {
        path:'/home',
        name:'Home',
        component: () => import('../View/home'),
        children:[
        ]
      }
    ]
})

path: 路径

路由会根据URL中的路径进行匹配path,匹配通过会跳转到相对应组件页面;

const router = new VueRouter({
 		routes:[
      {
        path:'/home', //路径
        name:'Home',
        component: () => import('../View/home'),
        children:[
        ]
      }
    ]
})

name:名称

路由跳转也可以根据指定name名称跳转到匹配组件页面;

const router = new VueRouter({
 		routes:[
      {
        path:'/home', 
        name:'Home', //name名称
        component: () => import('../View/home'),
        children:[
        ]
      }
    ]
}

redirect:重定向

可以通过重定向,跳转到指定的页面组件;

const router = new VueRouter({
 		routes:[
      {
        path:'/',
        redirect:'home' //重定向
      },
       {
        path:'/home', 
        name:'Home',
        component: () => import('../View/home'),
        children:[
        ]
      }
    ]
}

component:组件

为当前路径配置相对应的组件,匹配path或name成功后,获取当前配置的组件渲染到页面

const router = new VueRouter({
 		routes:[
       {
        path:'/home', 
        name:'Home',
        component: () => import('../View/home'),
        children:[
        ]
      }
    ]
}

meta:路由元信息

可以在此属性内配置信息或参数,可能是否拦截路由或者组件需要的信息都可以配置;

const router = new VueRouter({
 		routes:[
       {
        path:'/home', 
        name:'Home',
        component: () => import('../View/home'),
        meta: {
                 title: '首页',
                 is_active: true
         },
        children:[
        ]
      }
    ]
}

children:子路由

可能当前组件需要展示多个子组件,通过不同的事件展示对应的子组件;可以使用children来进行配置;

注意:子组件中的path不要以“/”开头,直接配置路径地址就可以;

const router = new VueRouter({
 		routes:[
       {
        path:'/home', 
        name:'Home',
        component: () => import('../View/home'),
        meta: {
                 title: '首页',
                 is_active: true
         },
        children:[
          {
             path:'new', 
        		 name:'New',
       			 component: () => import('../View/home'),
          }
        ]
      }
    ]
}

befoerEach:路由切换之前(路由守卫,路由卫士)

一般做后台管理平台的可能需要做些判断,判断用户权限或者是否登陆等信息;

有三个参数:

to:要切换到那个页面的路径信息

from:现在在那个页面的路径信息

next:下一步事件,befoerEach方法中必须指向next()事件,否则无法切换路径;

router.beforeEach(function (to, from, next) {
  //可以在此做些判断是否指向next()
       next()
    
})
 

next:放行通过

在befoerEach方法中使用:一般用于判断是否要切换路由;

router.beforeEach(function (to, from, next) {
  //可以在此做些判断是否指向next()
    if(to.name == 'Home'){
       next()
    }    
})

afterEach:路由切换之后(路由守卫,路由卫士)

在路由切换完成后执行,可以在此方法中设置页面的title,或这一些其它操作;

有两个参数:

to:要切换到那个页面的路径信息

from:现在在那个页面的路径信息

router.afterEach((to,from)=>{
 		 if (to.meta.title){
   				 document.title = to.meta.title;
 		 }else {
   				 document.title = "敲代码的猪"
 		 }
});


关注收藏不迷失,后续vue-router如何使用会全面整理后再发小文章;

相关文章

费用管理系统(BMS)(费用管理系统的好处)

随着物流仓储行业的快速发展,费用管理系统的应用愈发重要。BMS系统不仅简化了报价与结算流程,还降低了管理成本,提升了效率。本文深入探讨了海外仓BMS系统的功能与应用,展示了其在费用管理中的重要作用,为...

Vue3快速入门(vue3快速上手)

  1.核心语法  1. 1选项式和组合式的区别  Vue2的API设计是Options(选项)风格的。  Vue3的API设计是Composition(组合)风格的。  Options类型的 API...

同事git push到主分支上了,技术总监怒了

事情是这样的,同事前几天提交使用git提交代码的时候不小心提交到主分支上了,关键还提交成功了,这可是他自己开发的模块,还没测试的呢。技术总监也知道了,这下他慌乱了。最后还是技术总监给他兜底了。为了防止...

02.Web大前端时代之:HTML5+CSS3入门系列~H5结构元素

Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html1.结构元素 可以理解为语义话标记,比如:以前这么写<...

100行Html5+CSS3+JS代码实现元旦倒计时界面

一、前言2022年到了,祝大家虎年大吉喜气临,昂首摆尾迎春来。双眼圆睁看世界,万水千山尽开颜。胡须翘翘美姿态,人人开心祝平安。巨大身躯摇摆摆,坎坷困境当笑谈。愿你虎年万事顺,吉星高照旺旺旺!二、202...

HTML5与APP的抉择(h5与app的区别)

同为当下炙手可热的技术,围绕APP和HTML5难免少不了各种争辩。而在“互联网+”时代,许多面临转型的传统企业,也在选择转型工具时,陷入了HTML5或APP的纠结抉择之中……到底该选择HTML5还是A...