文章目录

  • 一、动态路由
    • $route 和 $router 的区别
  • 二、路由懒加载
    • 2.1 认识路由的懒加载
    • 2.2 懒加载的方式
  • 三、 嵌套路由
    • 3.1 认识嵌套路由
  • 四、router参数传递
    • 4.1 传递参数的方式
    • 4.1.1 params 的类型
    • 4.1.2 query的类型
    • 4.1.3 使用普通按钮的形式传递数据

一、动态路由

在某些情况下,一个页面的path路径可能使不确定的,比如我们进入用户界面时,希望如下的路径:
user/aaa 或者 user/lisi;除了有前面的/user之外,后面HIA跟上了用户的Id;这种path和Component的匹配关系,我们称之为动态路由(也是路由的传递数据的一种方式).

$route 和 $router 的区别

  • $router 为VueRoute实例,想要导航到不同的URL,则使用$router.push方法
  • $route 为当前router跳转对象里可以获取name,path,query,params等

在APP.vue中配置

测试数据结果:

二、路由懒加载

2.1 认识路由的懒加载

官方介绍:
当打包构建应用时,JavaScript 包会变得非常大,影响页面加载;如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应的组件,这样就更加高效了.

详情解释:

  • 首先,我们知道路由中通常会定义很多不同的页面
  • 这个页面最后被打包的哪里呢? 一般情况下,是放在一个js文件中
  • 但是,页面这么多放在一个js文件中,必然会造成这个页面非常的大
  • 如果我们一次性从服务器请求下来的这个页面,可能需要花费一定的时间,甚至用户的电脑上还出现了短暂空白的情况.
  • 如何避免这种情况呢? 使用路由懒加载即可

路由懒加载做了什么?

  • 路由懒加载的主要作用就是将路由对应的组件打包成一个个的js代码块
  • 只有在这个路由被访问的到的时候,才加载对应的组件

2.2 懒加载的方式

方式一: 结合Vue的异步组件和Webpack的代码分析

const Home = resolve => { require.ensure(['../components/Home.vue'], () => { resolve(require('../components/Home.vue')) })};

方式二: AMD 写法

const About= resolve => require(['../components/About.vue'], resolve);

方式三: 在ES6 中,我们可以有更加简单的写法来组织和Webpack的代码分割

const Home = () => import('../components/Home.vue')

使用方式三进行懒加载的应用如图:

三、 嵌套路由

3.1 认识嵌套路由

嵌套路由是一个很常见的功能:
比如在home页面中,我们希望通过/home/news 和 home/message 访问一些内容; 一个路径映射一个组件,访问这两个路径也会分别渲染两个组件.

路径和组件的关系如图所示:

实现嵌套路由有两个步骤:

  • 创建对应的子组件,并且在路由映射中配置对应的子路由
  • 在组件内部使用<router-view> 标签


设置默认新闻页

效果显示:

四、router参数传递

4.1 传递参数的方式

传递参数主要有两种类型: params 和 query

4.1.1 params 的类型

配置路由格式: /router/:id

传递的方式: 在path后面跟上对应的值

 {path: '/user/:abc',component: User}

传递后形成的路径:/router/123 ,/router/abc

实例配置:

页面中结果显示:

4.1.2 query的类型

配置路由格式: /router ,也就是普通配置
传递的方式: 对象中使用query的key作为传递方式
传递后形成的路径:/router?id=123 , /router?id=abc

页面传递打印数据如下:

4.1.3 使用普通按钮的形式传递数据

Vue -- vue-router(路由)的基本使用相关推荐

  1. Vue+axios(interceptors) 实现http拦截 + router路由拦截 (双拦截)+ 请求自带loading效果...

    axios interceptors 拦截器 //interceptors.js// vue axios配置 发起请求加载loading请求结束关闭loading // http request 请求 ...

  2. 四十三、在Vue使用router,路由的管理

    @Author:Runsen @Date:2020/7/17 管理路由是一项必不可少的功能.今天,Runsen学习Vue Router. 文章目录 安装Vue Router Vue Router使用 ...

  3. vue 传递 对象 路由_vue 04 -vue路由对象($route)参数简介以及和router的区别

    vue路由对象($route) 在使用了 vue-router 的应用中,路由对象会被注入每个组件中,赋值为 this.$route ,并且当路由切换时,路由对象会被更新. so , 路由对象暴露了以 ...

  4. vue router 路由鉴权(非动态路由)

    概述 角色:超级管理员.主题管理员.数据服务管理员 权限: 超级管理员:所有页面 主题管理员:基础公共页面+主题设置页 数据服务管理员:基础公共页面+数据服务设置页+数据服务审批页 需求:角色菜单来自 ...

  5. vue工程化与路由router

    一.介绍 vue.js 是 目前 最火的前端框架,vue.js 兼具 angular.js 和 react.js 的优点,并剔除它们的缺点.并且提供了很多的周边配套工具 如vue-router .vu ...

  6. Vue Router 路由管理

    文章目录 Vue Router 路由管理 概述 安装 简单使用 定义2个组件 定义路由信息 支持路由 使用路由 动态路由 配置动态路由 配置404 限制动态参数 嵌套路由 命名路由 编程式导航 简单使 ...

  7. Vue学习之路由(Router)

    Vue学习之 路由(Router) 文章目录 Vue学习之 路由(Router) 一.路由是什么? 二.Vue Router的安装 1.直接下载/CDN 2.NPM安装 三.路由的基础使用 1.定义路 ...

  8. 【Vue】相关生态——Vue Router路由

    Vue Router路由 基本使用 带参数的动态路由匹配 捕获所有路由或404 Not found 路由 嵌套路由 编程式导航 重定向和别名 将props传递给路由组件 不同的历史模式 进阶 导航守卫 ...

  9. Vue Router路由常用功能总结

    Vue Router路由常用功能总结 一.前言 二.安装 1. vueCLI安装 2. npm安装 三.路由配置及使用: 1. 基本配置: 2. 动态路由: 3. 嵌套路由: 四.编程式的导航 五.重 ...

  10. Vue 学习(十、 Vue Router - 路由插件 和 Vue 的插件原理)

    文章目录 一.Vue Router - 路由插件 1. 安装 Vue Router 2. Vue Router 路由的基本使用 3. 设置 router-link 4. 编程式路由 5. 路由嵌套 6 ...

最新文章

  1. 小小flash动画_flash宣传动画视频能给公司品牌传播带来什么
  2. 在DataGrid(WebControl)中处理DropDownList事件的补充说明
  3. 9-spark学习笔记-sparkstreaming
  4. twisted:基于python的twisted框架编写一个客户端和服务端的对话聊天空间
  5. 画直线_在鸡的面前画直线,鸡为什么会晕呢,西瓜视频带你揭秘
  6. zabbix mysql 8g优化_zabbix mysql调优
  7. VsCode常用设置,新手必备!
  8. 华南理工专科计算机随堂联系,华南理工大学网络教育计算机基础随堂练习第三章...
  9. 《编写高质量代码:改善c程序代码的125个建议》——建议14-2:在右移中合理地选择0或符号位来填充空出的位...
  10. winform中treeview控件实现部分节点显示checkbox
  11. C++11范围for循环
  12. stacking模型融合_算法实践七:模型融合
  13. IIS7.5安全配置研究
  14. 一套C#图书管理系统源码 书籍借还登记统计系统源码
  15. 韩顺平Java基础入门笔记-第一章
  16. Duilib--->Duilib库介绍总结概述
  17. OpenCV-像素值读写(java版)
  18. 手把手教你安装黑苹果之openCore-0.6.3 EFI制作全过程,非常详细
  19. mysql 回滚sql_Mysql误操作后使用binlog2sql快速回滚
  20. python图像切割成多边形_如何在python中将图像裁剪成多边形

热门文章

  1. 找工作的时候怎样判断一家公司靠不靠谱
  2. 软考程序员 c java 二选一_往年软考程序员试题分析及备考建议
  3. FLASH中button组件的selected和toggle属性解析
  4. (十五:2020.08.28)CVPR 2013 追踪之论文纲要(译)
  5. 光子计算机应用领域,光子计算机离我们还有多远?
  6. Ubuntu、CentOS 修改时区、设置24小时时间格式
  7. js判断数据类型常用的四种方法
  8. 从0部署Tekton之Tekton安装
  9. C++类的交叉引用问题
  10. Unity使用Newtonsoft.Json插件实现XML与JSON数据的互转