vue-router之动态路由、懒加载、路由嵌套、传递参数16

动态路由

认识动态路由

动态路由:path与component的匹配关系。

在某些情况下,一个页面的路径是不确定的。如,CSDN用户,进入个人中心页面,每个用户的页面展示内容不同,为了区分开来,页面路径后会带上 /user_id

使用动态路由

以用户为例:

创建User.vue组件
在这里插入图片描述
在这里插入图片描述
添加路由与User.vue之间的映射
在这里插入图片描述
在App.vue中添加User的路由导航。根据路由和User.vue之间的映射关系可知,userId时动态变化的,故to属性要用 v-bind:: 修饰。
在这里插入图片描述
效果:
在这里插入图片描述
在User页面显示userId。

使用vue路由的$route对象,通过$route拿到当前页面的params获得user_id。
在这里插入图片描述
效果
在这里插入图片描述

$route与$router的区别

$route:表示当前的路由信息,包含了当前url解析得到的信息。

  • $route.params:一个 key/value 对象,包含了 动态片段全匹配片段。若没有路由参数,则为空。
  • ……

$router:全局路由的实例,是router构造方法的实例。

  • push等同于pushState(history实现路由之一)
  • replace等同于replaceState(一般用来做404页面)
  • go

动态路由的懒加载

解析打包文件

在这里插入图片描述
打包后的文件分为css和js两个文件夹,css文件被单独分离出去,js文件夹中包含三个js文件,其中:

  • app.xxx.js:存放业务代码js代码,即当前开发人员所写的所有代码。
  • manifest.xxx.js:为打包的代码做底层支撑,使得浏览器请求到资源后能够将代码效果展示在页面上。
  • vendor.xxx.js:存放第三方代码,如Vue、Rect等。

认识路由懒加载

官方解释:

当打包构建应用时,js包会变得很大(不使用路由懒加载则一般都打包在一个js文件当中,而很多页面放在一个js文件中,就会导致该js文件非常大)

影响页面加载速度(一次性向服务器请求所有文件,会花费一定时间,时间过长可能页面会出现短暂空白)

把不同路由对应的组件分割成不同的代码块,在路由被访问的时候才加载对应的组件,就更加高效。

路由懒加载主要作用

  • 路由对应的组件打包成一个个小的js代码块;
  • 只在路由被访问到的时候,才加载对应的组件。

路由懒加载的三种方法

1、结合vue异步组件和webpack(现在基本不用了)

模板

const xxx = resolve => {
   
  require.ensure(
    ['../components/xxx.vue']
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值