1 # 一、路由的props参数
2 export default new VueRouter({
3 routes:[
4 {
5 name:'guanyu', // 命名路由
6 path:'/about', // 路劲
7 component: About
8 },
9 {
10 path:'/home',
11 component: Home,
12 children:[
13 {
14 path:'messages',
15 component: Messages,
16 children:[
17 {
18 name: 'xiangqing',
19 path: 'message/:id/:title', // params传参
20 component: MessageInfo,
21 // props的第一种写法,值为对象,该对象中的所有key-value都会以props的形式传值给MessageInfo组件。
22 // props: {a:1,b:'hello'},
23
24 // props的第二种写法,值为bool值,为true,就会把该路由组件收到的参数,以props的形式传值给MessageInfo组件。
25 props: true,
26
27 // props的第三种写法,值为函数
28 // props($route){
29 // return {
30 // id: $route.query.id,
31 // title: $route.query.title,
32 // a: 1,
33 // b: 'hello'
34 // }
35 // }
36 }
37 ]
38 },
39 {
40 path:'news',
41 component: News
42 }
43 ]
44 }
45 ]
46 });
47
48 # 二、<router-link>的replace属性
49 # 1.作用:控制路由跳转时操作浏览器历史记录的前进后退模式
50 # 2.浏览器的历史记录有两种写入方式:分别为push和replace,push是追加历史记录,replace是替换当前记录,路由跳转默认是push。
51 # 3.如何开启replace模式:
52 <router-link replace ...>...</router-link>
53
54 # 三、编程式路由导航
55 1.作用:不借助<router-link>实现路由跳转,让路由跳转更灵活
56 2.具体编码:
57 this.$router.push({ // 留痕迹在window.history
58 name: 'xxx',
59 params: {id:xxx,title:'xxx'}
60 });
61 this.$router.replace({// 不留痕迹在window.history
62 name: 'xxx',
63 params: {id:xxx,title:'xxx'}
64 });
65 this.$router.forward(); // 前进,等于window.history.forward()
66 this.$router.back(); // 后退,等于window.history.back()
67 this.$router.go(-2); // 可前进可后退,等于window.history.back()
68
69 # 四、缓存路由组件
70 1.作用:让不展示的路由组件保持挂载,不被销毁
71 2.具体编码:<keep-alive include="News,Meaasges"><router-view></router-view></keep-alive>
72 注意:被<keep-alive>包含的内容会保持挂载不被销毁,include可以指定哪些组件不被销毁,它的值是组件名(也就是组件的name属性值),不填include代表所有都不销毁
73
74 # 五、两个新的声明周期钩子:activated、deactivated
75 1.作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态
76 2.具体名字:activated路由组件被激活时触发,deactivated路由组件失去激活时触发
77
78 # 六、全局守卫路由
79 # 1.全局前置路由守卫——初始化的时候被调用、每次路由切换之前被调用
80 router.beforeEach((to, from, next)=>{
81 console.log('beforeEach', to, from);
82 // if (to.name === 'xinwen' || to.path === '/home/messages'){ // 这里要是有十几二十个的话,就会显得累赘
83 if (to.meta.isAuth){ // 路由的meta属性对象,是专门供我们自定义属性使用的(注意:自定义属性放在其他地方不会生效)
84 if (localStorage.getItem('school')==='BaiYeShu'){
85 next();// 放行
86 console.log('@');
87 }else{
88 alert('学校名不对!')
89 }
90 }else{
91 next();
92 }
93 });
94 # 2.全局后置路由守卫——初始化的时候被调用、每次路由切换之后被调用
95 router.afterEach((to, from)=>{
96 console.log('afterEach', to, from);
97 if (to.meta.title){
98 document.title = to.meta.title
99 }else{
100 document.title = 'vue_test'
101 }
102
103 });
104 export default router;
105 # 3.独享路由(配置在路由内部)
106 {
107 path:'news',
108 component: News,
109 meta:{isAuth: true, title: '新闻'}, // 路由的meta属性对象
110 beforeEnter(to, from, next){ // 这就是独享路由,内容参数和beforeEach没区别
111 console.log('beforeEnter', to, from);
112 // if (to.name === 'xinwen' || to.path === '/home/messages'){ // 这里要是有十几二十个的话,就会显得累赘
113 if (to.meta.isAuth){
114 if (localStorage.getItem('school')==='BaiYeShu'){
115 next();// 放行
116 console.log('@');
117 }else{
118 alert('学校名不对!')
119 }
120 }else{
121 next();
122 }
123 }
124 }
125 # 4.组件内部路由守卫(写在组件内部的回调)
126 // 通过路由规则,进入该组件时被调用
127 beforeRouteEnter(to, from, next) {
128 console.log('beforeRouteEnter');
129 next();// 放行
130 },
131 // 通过路由规则,离开组件时被调用
132 afterRouterLeave(to, from, next) {
133 console.log('afterRouterLeave');
134 next();// 放行
135 }
136

Vue 路由的一些复杂配置的更多相关文章

  1. vue 路由(二级)配置及详细步骤

    1.安装插件(可以选择在初始化项目的时候安装) cnpm install vue-router --save-dev 2.将插件全局引入到项目中(main.js) import VueRouter f ...

  2. vue路由history模式,nginx配置

    nginx配置内容 # For more information on configuration, see: # * Official English Documentation: http://n ...

  3. Vue 路由配置、动态路由

    1.安装 npm install vue-router --save / cnpm install vue-router --save 2.引入并 Vue.use(VueRouter) (main.j ...

  4. vue路由配置

    1.安装 npm install vue-router --save / cnpm install vue-router --save 2.引入并 Vue.use(VueRouter) (main.j ...

  5. Vue 路由模块化配置

    博客地址:https://ainyi.com/77 企业运营后台页面很多,路由如若不区分模块化配置,所有路由挤在同一个文件将不好维护,所以路由的配置也要模块化 分享两个解决方案 -- Vue 路由配置 ...

  6. vue路由的两种模式配置以及history模式下面后端如何配置

    vue路由的两种模式配置以及history模式下面后端如何配置 1.hash ——即地址栏URL中的#符号.hash 虽然出现URL中,但不会被包含在HTTP请求中,对后端完全没有影响,因此改变has ...

  7. 简单配置Vue路由

    简单配置Vue路由 1.  创建一个单文件组件Test.vue <template> <div>Test</div> </template> <s ...

  8. Vue之创建组件之配置路由!

    Vue之创建组件之配置路由!== 第一步: 当然就是在我们的试图文件夹[views]新建一个文件夹比如home 在home文件夹下面新建一个文件index.vue 第二步:在router目录下做如下事 ...

  9. npm vue路由配置

    npm vue路由 复习:1.README.md文件:保存如何使用的命令 (1)     npm install:拷项目时可以不拷node_modules文件,运行该命令时,会自动下载node_mod ...

随机推荐

  1. ubuntu 20.04 source mirror(aliyun)

    x64 deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://m ...

  2. 739. Daily Temperatures - LeetCode

    Question 739. Daily Temperatures Solution 题目大意:比今天温度还要高还需要几天 思路:笨方法实现,每次遍历未来几天,比今天温度高,就坐标减 Java实现: p ...

  3. 一个 "开箱即用" 个人博客全栈系统项目!vue+node+express+mysql+sequlize+uniapp

    " MG'Blog " 一个 "开箱即用" 个人博客全栈系统项目! 探索本项目的源码 » 前台预览 · 管理端预览 v1.0.2 小程序预览 v1.0.2 介绍 ...

  4. 前端5jQuery

    内容概要 jQuery简介 查找标签 jQuery操作标签 jQuery事件操作 jQuery动画效果(了解) 前端第三方框架(基础) 内容详情 jQuery简介

  5. JavaScript 防盗链的原理以及破解方法

    先说说防盗链的原理,http 协议中,如果从一个网页跳到另一个网页,http 头字段里面会带个 Referer.这里的Referer是由于历史原因导致了拼写错误 后来也就一直沿用.图片服务器通过检测 ...

  6. JavaScript做简单的购物车效果(增、删、改、查、克隆)

    比如有时候遇到下面这种情况,点击加入购物车,然后在上方的购物车中动态的添加商品以及商品的信息,我们就可以通过JavaScript实现简单的这些操作. 首先我们需要在html文档中,通过css对页面的布 ...

  7. python爬虫之protobuf协议介绍

    前言 在你学习爬虫的知识过程中是否遇到下面的类型.如果有兴趣学习一下或者了解相关知识的,且不嫌在下才疏学浅,可以参考一下.欢迎各位网友的指正. 首先叙述一下问题的会出现的式样. 你可能会在请求参数中看 ...

  8. UiPath选择器之动态选择器的介绍和使用

    一.动态选择器的介绍 使用通配符, 能够替换字符串中的零个或多个字符的符号.这些在处理选择器中的动态更改的属性时非常有用. 二.动态选择器在UiPath中的使用 1.在设计库中新建一个Sequence ...

  9. Consider defining a bean of type 'redis.clients.jedis.JedisPool' in your configuration.

    报错信息 原因是没有Jedispool没有注入 import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml ...

  10. SQL SERVER 算法面试题,自己再插入数据时,本想一次性复制10条数据,结果变成了1024条。产生一个算法bug,最后记录一下