位置: IT常识 - 正文

路由懒加载及实现方式(vue-router)(路由加载的几种方式)

编辑:rootadmin
路由懒加载及实现方式(vue-router)

推荐整理分享路由懒加载及实现方式(vue-router)(路由加载的几种方式),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:路由懒加载实现的原理,路由懒加载有三种方式的区别,路由懒加载实现,路由懒加载有三种方式的区别,路由懒加载实现的原理,路由懒加载实现方法,路由懒加载实现的原理,路由懒加载及实现方式,内容如对您有帮助,希望把文章链接给更多的朋友!

vue-router路由懒加载及实现方式。

文章目录

前言

一、路由懒加载

二、实现路由懒加载

1.Vue异步组件(异步加载)

2.推荐方式-ES6的import()

 3.webpack提供的require.ensure()实现懒加载

前言

什么是路由懒加载?--延迟加载,在需要的时候才会进行加载。

一、路由懒加载

         我们在路由中通常会定义很多不同的页面。如果不应用懒加载的话,很多页面都会打包到同一个js文件中,文件将会异常的大。造成进入首页时,需要加载的内容过多,时间过长,在浏览器中可能会出现短暂的空白页,从而降低用户体验,而运用路由懒加载是将各个模块分开打包,用户查看的时候再加载对应的模块,减少加载用时。

也就是说:一开始进入页面时不需要一次性把资源都加载完,需要时在加载对应的资源。 

二、实现路由懒加载

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

//非路由懒加载import Vue from 'vue'import Router from 'vue-router'import Home from '@/components/Home'import Login from '@/components/Login'import New from '@/components/New'import List from '@/components/List'......routes:[ {path:'/Login',name:'Login',component:Login}, {path:'/',name:'Home',component:Home}, ...]

vue实现路由懒加载的三种方式: 

Vue异步组件ES6的import()webpack的require.ensure() 1.Vue异步组件(异步加载)

vue-router 配置路由,使用vue的异步组件技术,可以实现懒加载,但是这种情况是一个组件会生成一个js文件。

路由懒加载及实现方式(vue-router)(路由加载的几种方式)

component:resolve => require(['需要加载的组件地址'],resolve) 

{path:'/login',name:'Login', component:resolve => require(['@/components/Login'],resolve)},{path:'/home',name:'Home', component:resolve => require(['@/components/Home'],resolve), children:[ {path:'/new',name:'New', component:resolve =>require(['@/components/New'],resolve)}, {path:'/list',name:'List', component:resolve => require(['@/components/List'],resolve)} ] }2.推荐方式-ES6的import()

const 组件名 = () => import('组件路径')

//下面没有指定webpackChunkName,每个组件打包成一个js文件const Foo = () => import('../components/Foo')const Aoo = () => import('../components/Aoo')

 指定相同的webpackChunkName,会合并打包成一个js文件

const Foo = () => import(/*webpackChunkName:'ImportFuncDemo'*/,'../components/Foo');const Aoo - () => import(/*webpackChunkName:'ImportFuncDemo'*/,'../components/Aoo')...{path:'/Foo',name:'Foo',component:Foo},{path:'/Aoo',name:'Aoo',component:Aoo},{path:'/Login',name:'Login', component: ()=>import(/*webpackChunkName:"ImportFuncDemo"*/,'../compontents/Login')}

 上面代码中,webpackChunkName值相同的会打包成一个js文件

 3.webpack提供的require.ensure()实现懒加载

vue-router 配置路由,使用webpack的require.ensure技术,可以实现懒加载,这种情况下,多个路由指定相同的chunkName,会合并打包成一个js文件。

require.ensure可实现按需加载资源,包括js,css等,会给里面require的文件单独打包,不会合主文件打包在一起。 

{path:'/home',name:'home',component:r=> require.ensure([],()=>r(require('@/components/home')),'funcDemo')},{path:'/new',name:'new',component:r=> require.ensure([],()=>r(require('@/components/new')),'funcDemo')},{path:'/list',name:'list',component:r=> require.ensure([],()=>r(require('@/components/list')),'listDemo')},

注:r就是resolve 

const list = r => require.ensure([],()=>r(require('组件地址')),'list') 

 第一个参数是数组,表明第二个参数里需要依赖的模块,这些会提前加载。

第二个是回调函数,在这个回调函数里面require的文件会被单独打包成一个chunk,不会和主文件打包在一起,这样就生成了两个chunk,第一次加载时只加载主文件。

第三个参数是错误回调。 

第四个参数是单独打包的chunk的文件名 

const Coo = resolve=>{ require.ensure([],()=>{resolve(require('@/components/List'))})}...{path:'/list',name:'List',component:Coo}
本文链接地址:https://www.jiuchutong.com/zhishi/298718.html 转载请保留说明!

上一篇:遥感图像超分辨重建综述(遥感图像超分辨率 坑)

下一篇:训练自己的GPT2-Chinese模型(训练自己的GPT)

  • 税控盘维护费会计分录怎么写
  • 运输行业一般纳税人税率
  • 印花税的征税范围
  • 车船使用税2021
  • 母子公司间提供保洁保安合法吗
  • 政府发的补助金用不用交税
  • 金融资产的减少为什么记在贷方
  • 申请一般纳税人需要多长时间
  • 2017年7月1日开始实施的税法新规
  • 2017年全国税收收入是多少
  • 奖金个人所得税筹划
  • 刷银行卡消费安全吗
  • 合伙人退伙怎么处理
  • 减免税款交企业所得税吗
  • 烟酒专用发票能抵税吗
  • 制造企业享受增值税政策
  • 畅捷通t3怎么增加新的会计年度
  • 纳税人申领发票流程
  • 多交附加税怎么做账
  • 残疾人就业保障金是什么意思啊
  • windows10专业
  • windows10不会自动锁屏
  • Linux中samba服务区怎么创建多个用户
  • 苹果6手机蓝牙
  • php解析xml文件
  • 猜单词游戏代码
  • 深入分析php引用文献
  • 期末坏账准备的计算
  • 产权登记在开发商名下怎么过户
  • 代缴个税的分录
  • 费用超额怎么写申请
  • php调用远程桌面
  • 无形资产清理账务怎么做
  • 落枕怎么办怎么治疗
  • 工业企业出租房屋的租金收入应计入
  • 接受股权投资账务处理
  • 图像质量评价指标及方法 图像工程
  • Vue3 中 createWebHistory 和 createWebHashHistory 的区别
  • 城市维护建设税减免税优惠政策
  • Ant Design-vue 解决input前后空格问题(推荐)
  • 试运行收入会计分录
  • 房企预缴税款会退税吗
  • wordpress部署到github
  • sql数据库移动
  • 非房地产企业的基建管理办法
  • 客户多付款不要了,多出这部分是哪种收入
  • 三免三减半税收政策中的递延所得税
  • 固定资产清理往报表哪列示
  • 企业所得税入账凭证
  • 多交的增值税和附加税退回,如何记账
  • 总分类账与明细分类账平行登记的要点包括
  • 补充登记法的操作步骤
  • 税局代开专票对方隔月退回重开如何做账务处理呢?
  • 微信公众号注册时间在哪里看
  • 收到上月已付款的材料
  • 多打的投资款怎么入账
  • 母子公司合并报表实操
  • 测绘费如何入账
  • 五金配件生意好做吗
  • 月底计提工资的会计处理
  • 未分配利润是什么会计科目
  • mysql查询语句中的逻辑运算符
  • Ubuntu下MySQL安装及配置远程登录教程
  • windowsxp开机启动项在哪里设置
  • win8电脑定时关机怎么设置方法
  • perl 比较符
  • [置顶] [寒江孤叶丶的Cocos2d-x之旅_27]CocoStudio导出的LUA文件怎么使用?
  • 简单掌握办公软件怎么写
  • android中使用md5后报非法延续字节
  • android的游戏
  • unity游戏开发入门经典
  • python ssh 远程执行命令
  • AppWidgetProvider使用介绍
  • Unity3D WebCamTexture 调用外部摄像头
  • windows,linux
  • cocos2d安装
  • 返利是否合法
  • 国地税机构改革方案
  • 关于研发费用的审计程序,下列说法中错误的是
  • 重庆电子税务局电话人工客服电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设