vue-router实现路由懒加载( 动态加载路由 )_前端懒加载原理

vue-router实现路由懒加载( 动态加载路由 )_前端懒加载原理为什么需要懒加载?    像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要加载的内容过多,时间过长,会出啊先长时间的白屏,即使做了loading也是不利于用户体验,而运用懒加载则可以将页面进行划分,需要的时候加载页面,可以有效的分担首页所承担的加载压力,减少首页加载用时vue异步组件 es提案的import() webpack…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Vue全套学习学习视频:B站

小胖梅-的个人空间_哔哩哔哩_Bilibili

 

为什么需要懒加载?

    像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要加载的内容过多,时间过长,会出啊先长时间的白屏,即使做了loading也是不利于用户体验,而运用懒加载则可以将页面进行划分,需要的时候加载页面,可以有效的分担首页所承担的加载压力,减少首页加载用时

  1. vue异步组件
  2. es提案的import()
  3. webpack的require,ensure()

1 . vue异步组件技术 ==== 异步加载 

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

/* vue异步组件技术 */

{ path: ‘/home’, name: ‘home’, component: resolve => require([‘@/components/home’],resolve) },

{ path: ‘/index’, name: ‘Index’, component: resolve => require([‘@/components/index’],resolve) },

{ path: ‘/about’, name: ‘about’, component: resolve => require([‘@/components/about’],resolve) }

非懒加载:

vue-router实现路由懒加载( 动态加载路由 )_前端懒加载原理

懒加载

vue-router实现路由懒加载( 动态加载路由 )_前端懒加载原理

2.组件懒加载方案二 路由懒加载(使用import)

const 组件名=() => import(‘组件路径’);

// 下面2行代码,没有指定webpackChunkName,每个组件打包成一个js文件。

/* const Home = () => import(‘@/components/home’)

const Index = () => import(‘@/components/index’)

const About = () => import(‘@/components/about’) */

// 下面2行代码,指定了相同的webpackChunkName,会合并打包成一个js文件。

把组件按组分块

const Home = () => import(/* webpackChunkName: ‘ImportFuncDemo’ */ ‘@/components/home’)

const Index = () => import(/* webpackChunkName: ‘ImportFuncDemo’ */ ‘@/components/index’)

const About = () => import(/* webpackChunkName: ‘ImportFuncDemo’ */ ‘@/components/about’)

{ path: ‘/about’, component: About }, { path: ‘/index’, component: Index }, { path: ‘/home’, component: Home }

3.webpack提供的require.ensure() 

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

/* 组件懒加载方案三: webpack提供的require.ensure() */

{ path: ‘/home’, name: ‘home’, component: r => require.ensure([], () => r(require(‘@/components/home’)), ‘demo’) },

{ path: ‘/index’, name: ‘Index’, component: r => require.ensure([], () => r(require(‘@/components/index’)), ‘demo’) },

{ path: ‘/about’, name: ‘about’, component: r => require.ensure([], () => r(require(‘@/components/about’)), ‘demo-01’) }

// r就是resolve
const list = r => require.ensure([], () => r(require(‘../components/list/list’)), ‘list’);
// 路由也是正常的写法  这种是官方推荐的写的 按模块划分懒加载 
const router = new Router({

    routes: [
        {

           path: ‘/list/blog’,
           component: list,
           name: ‘blog’
        }
    ]
})
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184879.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Qt 之图形(QPainter 的基本绘图)「建议收藏」

    Qt 之图形(QPainter 的基本绘图)「建议收藏」Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice和QPaintEngine这三个类。-QPainter用于执行绘图操作,其提供的API在GUI或QImage、QOpenGLPaintDevice、QWidget和QPaintDevice显示图形(线、形状、渐变等)、文本和图像。

    2025年8月2日
    4
  • nactive for mysql 15 激活码【在线破解激活】

    nactive for mysql 15 激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    56
  • 关于write()和fsync()

    关于write()和fsync()writessize_twrite(intfd,constvoid*buf,size_tcount);将数据写到文件中.注意,如果文件是保存在硬盘中,write()函数调用返回之后,并不表示数据已经写入到硬盘中,这时如果掉电,数据可能会丢失.fsyncintfsync(intfd);程序调用本函数,通知内核把数据写到硬盘(file)中.比如,…

    2022年5月31日
    50
  • .NET中pdb文件的作用是什么「建议收藏」

    .NET中pdb文件的作用是什么「建议收藏」.PDB是ProgramDatabase的缩写,全称为“程序数据库”文件。我们使用它(更确切的说是看到它被应用)大多数场景是调试应用程序。目前我们对.PDB文件的普遍认知是它存储了被编译文件的调试信息,作为符号文件存在。 PDB文件寻路 如果我们观察VS启动调试加载模块和符号文件的过程,会发现它通常会从可执行文件或者DLL文件的相同目录中加载符号文件。这正是调试器寻找PDB文件的

    2022年5月5日
    115
  • String转为long 类型报错原因:要转为long必须是int、double、float型[通俗易懂]

    遇到该问题的解决办法一:StringstrTime="12.5416132";doubledblTime=Double.parseDouble(strTime); longlngTime=newDouble(dblTime).longValue();log.info("lngTime:"+lngTime);具体报错原因请看下面的例子和解释:上例子:stringa=…

    2022年4月12日
    92
  • html怎么将表格居中_HTML居中代码

    html怎么将表格居中_HTML居中代码表格是一种以有组织的方式呈现大量信息的绝佳方式。销售数据、网页流量、股票市场趋势和学生成绩是经常以表格形式呈现的信息示例。使用HTML将表格添加到网页时,将其置于页面中心可能更具视觉吸引力。居中文本和图片通常是通过text-align类或通过CSS来完成的,但是居中表格需要不同的方法。下面提供了有关如何使表格在网页上居中的详细信息。将表格添加到网页时,默认情况下,它与页面或容器的左侧对齐,如下所示。上表的HTML源代码如下。要使此表居中,您需要添加;margin-left:auto;margin-r

    2022年9月18日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号