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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 再来利用java学学javaweb——–html+css+ JavaScript[通俗易懂]

    再来利用java学学javaweb——–html+css+ JavaScript[通俗易懂]今日内容1.web概念概述2.HTMLweb概念概述*JavaWeb: *使用Java语言开发基于互联网的项目*软件架构: 1.C/S:Client/Server客户端/服务器端 *在用户本地有一个客户端程序,在远程有一个服务器端程序 *如:QQ,迅雷… *优点: 1.用户体验好 *缺点: 1.开发、安装,部署,维护麻烦 2.B/S:Browser/Server浏览器/服务器端 *只需要一个浏览器,用户通过不同的网

    2022年7月12日
    14
  • Web前端学习 | Ajax

    Web前端学习 | Ajaxajax其实是代替手工输入url向server申请资源的一个工具。XMLHttpRequest对象的onload回调函数是在异步请求加载完成后所执行的函数,当JavaScript监测到请求的数据全部传输完成后就会触发该函数。而open()函数设置异步请求的method、URL和同步方式等参数,执行open()后再执行send()函数才开始向服务器发送请求。<!DO…

    2025年9月4日
    6
  • pycharm暂停了,如何继续运行_pycharm运行完后不退出运行

    pycharm暂停了,如何继续运行_pycharm运行完后不退出运行pycharm的并行运行在pycharm中想要对一个程序同时多开几个运行窗口,并行的同时运行。但是会弹出下面提示:解决方法:步骤一:在pycharm顶部菜单栏单击Run(运行)->EditConfigurations(编辑配置)步骤二:在弹出的Run/Debugconfigurations窗口的右上角将“Allowparallelrun”打勾即可,如下图所示:不能自动…

    2022年8月29日
    2
  • kafka 集群配置_kafka集群原理

    kafka 集群配置_kafka集群原理一、kafka简述1、简介kafka是一个高吞吐的分布式消息队列系统。特点是生产者消费者模式,先进先出(FIFO)保证顺序,自己不丢数据,默认每隔7天清理数据。消息列队常见场景:系统之间解耦合、峰值压力缓冲、异步通信。2、集群介绍(1)Kafka架构是由producer(消息生产者)、consumer(消息消费者)、borker(kafka集群的server,负责处理消息读、…

    2022年8月31日
    4
  • 谷歌被拆分_自己的团队被拆分

    谷歌被拆分_自己的团队被拆分最近有报道说美国司法部经过长达是十几个月的调查,认为Google涉嫌违反垄断法,可能要对Google动刀了:考虑强迫Google出售Chrome浏览器和利润丰厚的广告业务。Google会…

    2022年9月2日
    7
  • css怎么改鼠标样式,如何利用CSS改变鼠标的样式

    css怎么改鼠标样式,如何利用CSS改变鼠标的样式各种各样的鼠标样式,对于经常使用电脑的人而言一定不会生疏。当鼠标移动到不同的地方时,当鼠标执行不同的功能时,鼠标的外形都会发生变化。但在网页上,貌似只有当鼠标在超级链接上时才出现一个手形,在其它地方似乎没有什么变化,同布满动感的网页显得不怎么和谐。实际上,用css可以方便地定义许多种鼠标外形。下面小编就为大家介绍一下怎样利用CSS改变鼠标的样式。用CSS改变鼠标的样式,我们使用cursor属性,现…

    2022年5月31日
    36

发表回复

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

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