- 51
- 0
- 约1.36万字
- 约 19页
- 2018-05-02 发布于贵州
- 举报
基于webpack Code Splitting实现react组件的按需加载45
基于webpack Code Splitting实现react组件的按需加载本文章来自于阿里云云栖社区摘要:?随着web应用功能越来越复杂,模块打包后体积越来越大,如何实现静态资源的按需加载,最大程度的减小首页加载模块体积和首屏加载时间,成为模块打包工具的必备核心技能。webpack作为当下最为流行的模块打包工具,成为了react、vue等众多热门框架的官方推荐打包工具。其提供的Code Splitting(代码分割)特性正是实现模块按需加载的关键方式。 # 什么是Code Splitt随着web应用功能越来越复杂,模块打包后体积越来越大,如何实现静态资源的按需加载,最大程度的减小首页加载模块体积和首屏加载时间,成为模块打包工具的必备核心技能。webpack作为当下最为流行的模块打包工具,成为了react、vue等众多热门框架的官方推荐打包工具。其提供的Code Splitting(代码分割)特性正是实现模块按需加载的关键方式。什么是Code Splitting官方定义:Code splitting is one of the most compelling features of webpack. It allows you to split your code into various bundles which you can then load on demand — like when a user navigates to a matching route, or on an event from the user. This allows for smaller bundles, and allows you to control resource load prioritization, which if used correctly, can have a major impact on your application load time翻译过来大概意思就是:代码分割功能允许将web应用代码分割为多个独立模块,当用户导航到一个匹配的路由或者派发某些特定事件时,来按需加载这些模块。这样就可以将大型的模块分割为多个小型的模块,实现系统资源加载的最大优化,如果使用得当,能够极大的减少我们的应用首屏加载时间。Code splitting 分类一、缓存和并行加载的资源分割这种方法是将某些第三方基础框架模块(例如:moment、loadash)或者多个页面的公用模块拆分出来独立打包加载,通常这些模块改动频率很低,将其与业务功能模块拆分出来并行加载,一方面可以最大限度的利用浏览器缓存,另一方面也可以大大降低多页面系统的代码冗余度。按照资源类型不同又可以分为js公共资源分割和css资源分割两类。1、js公共资源分割例如:系统应用入口文件index.js中使用日期功能库?momentjs。(原文链接:/package/moment?spm=5176.100239.blogcont71200.18.vr70al)index.jsvarmoment = require(moment);console.log(moment().format());webpack.config.js定义多个entry入口main为主入口模块文件vendor为公共基础库模块,名字可随意设定。称为initial chunkvar path = require(path);module.exports = {entry: {main: ./index.js,vendor: [moment] },output: {filename: [name].js,path: path.resolve(__dirname, dist) }}执行webpack打包命令:webpack--progress--hide-modules可以看到最终打包为两个js文件?main.js?、vendor.js,但如果检查者两个文件会发现moment模块代码被重复打包到两个文件中,而这肯定不是我们想要的,这时候就需要webpack的plugin发挥作用了。使用CommonsChunkPluginvarwebpack = require(webpack);var path = require(path);module.exports = {entry: {main: ./index.js,vendor: [moment] },output: {filename: [chunkhash:8].[name].js,path: path.resolve(__dirname, dist) },plugins: [newwebpack.optimize.CommonsChunkP
您可能关注的文档
- 印钮赏析30.docx
- 古代文学先秦--秦汉部分试题库43.docx
- 古代文化漫谈期末作业24.docx
- 古代文学史(唐宋)11.docx
- 古代汉语专题作业22.docx
- 古代建筑鉴赏20110380311广瑞峰15.docx
- 古希腊时代的社会学思想46.docx
- 古籍善本收藏知识18.docx
- 古田会议精神47.docx
- 古典概率教案7.docx
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 《专业工程管理与实务》.pdf VIP
- 中国血栓性疾病防治指南(2025版).docx VIP
- 施工质量日志-.xls VIP
- 2025年国家公务员全国总工会面试题及答案.docx VIP
- 合肥市普通高中六校联盟2025-2026学年高三第一次语文教学质量监测+答案.docx VIP
- 局部晚期食管癌患者新辅助免疫治疗与常规新辅助治疗的比较:系统评价和meta分析.pdf
- 2025以骑手为代表的新就业群体研究报告:职业技能与跑单时长对收入的共同作用.pdf VIP
- 年产一亿片别嘌呤醇的车间工艺设计.doc VIP
- 商务型(带电梯、地下室、效果图)三层别墅设计图.pdf VIP
- 2026年详版个人信用报告征信报告最新Word可编辑模版样板doc文件.docx
原创力文档

文档评论(0)