前端学习(2906):Vite 解决了 Webpack 哪些问题

随着项目的复杂度升级,代码规范和管理就必须要同步提升。于是,编程社区中提出了多种模块化规范,服务端选择了 CommonJS 规范,客户端选择 AMD 规范较多,但是,两种模块化规范也都存在一定的问题,都是 JS 编程,有两个不同的模块化规范,在 JS 语言层面还是不够的,终于在 ES6 中,ECMA 委员会推出了语言层面模块系统:ES Modules 规范模块化可以帮助我们更好地解决复杂应用开发过程中的代码组织问题,但是随着模块化思想的引入,我们的前端应用又会产生了一些新的问题,比如:首先,我们所使用的 ES Modules 模块系统本身就存在环境兼容问题。尽管现如今主流浏览器的最新版本都支持这一特性,但是目前还无法保证用户的浏览器使用情况。所以我们还需要解决兼容问题其次,模块化的方式划分出来的模块文件过多,而前端应用又运行在浏览器中,每一个文件都需要单独从服务器请求回来。零散的模块文件必然会导致浏览器的频繁发送网络请求,影响应用的工作效率最后,谈一下在实现 JS 模块化的基础上的发散。随着应用日益复杂,在前端应用开发过程中不仅仅只有 JavaScript 代码需要模块化,HTML 和 CSS 这些资源文件也会面临需要被模块化的问题。而且从宏观角度来看,这些文件也都应该看作前端应用中的一个模块,只不过这些模块的种类和用途跟 JavaScript 不同对于开发过程而言,模块化肯定是必要的,所以我们需要在前面所说的模块化实现的基础之上引入更好的方案或者工具,去解决上面提出的 3 个问题,让我们的应用在开发阶段继续享受模块化带来的优势,又不必担心模块化对生产环境所产生的影响本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)Vue 脚手架工具 vue-cli 使用 webpack 进行打包,开发时可以启动本地开发服务器,实时预览。因为需要对整个项目文件进行打包,开发服务器启动缓慢而对于开发时文件修改后的热更新 HMR 也存在同样的问题Webpack 的热更新会以当前修改的文件为入口重新 build 打包,所有涉及到的依赖也都会被重新加载一次Vite 则很好地解决了上面的两个问题打包问题vite 只启动一台静态页面的服务器,对文件代码不打包,服务器会根据客户端的请求加载不同的模块处理,实现真正的按需加载热更新问题vite 采用立即编译当前修改文件的办法。同时 vite 还会使用缓存机制( http 缓存 => vite 内置缓存 ),加载更新后的文件内容所以,vite 具有了快速冷启动、按需编译、模块热更新等优良特质综上所述,vite 构建项目与 vue-cli 构建的项目在开发模式下还是有比较大的区别:Vite 在开发模式下不需要打包可以直接运行,使用的是 ES6 的模块化加载规则;Vue-CLI 开发模式下必须对项目打包才可以运行Vite 基于缓存的热更新,Vue-CLI 基于 Webpack 的热更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wpf 去除按钮点击时会画一个点线的矩形

wpf 去除按钮点击时会画一个点线的矩形 最近在研究wpf&#xff0c;啥都不懂&#xff0c;特把自己查到的有用东西&#xff0c;收集一下&#xff1a;<Pagexmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.…

tfidf算法 python_tf–idf算法解释及其python代码实现(下)

tf–idf算法python代码实现这是我写的一个tf-idf的简单实现的代码&#xff0c;我们知道tfidftf*idf&#xff0c;所以可以分别计算tf和idf值在相乘&#xff0c;首先我们创建一个简单的语料库&#xff0c;作为例子&#xff0c;只有四句话&#xff0c;每句表示一个文档copus[我正在…

powerbuilder提示不是下拉窗口_为什么过去状态管理不是问题?

2-tier 架构远古时期&#xff0c;状态是完全由数据库管理的。数据库提供的连接是有状态的&#xff0c;打开页面的时候开连接&#xff0c;页面上的改动直接提交到当前的数据库连接。数据库连接的状态就是页面状态。3-tier 架构后来因为互联网类型的应用的发展&#xff0c;数据库…

mysql 查询前10门课程_数据库面试题:如何查找每门课程的前3名?

看到别人的面经里有类似这样一个问题&#xff0c;我自己试了下&#xff0c;感觉做不出来。DROP TABLE IF EXISTS SC;CREATE TABLE SC (SId varchar(10) DEFAULT NULL,CId varchar(10) DEFAULT NULL,score decimal(18,1) DEFAULT NULL);INSERT INTO SC VALUES (01, 01, 80.0);IN…

Java编程程序异常处理方法

对于java异常处理你是否都掌握了呢&#xff0c;如果是&#xff0c;你是否能在下面这段代码中&#xff0c;迅速找出异常处理的六个问题吗&#xff1f; 1、OutputStreamWriter out …   2、java.sql.Connection conn …   3、try { // ⑸   4、 Statement stat conn.…

[html] img中的src加载失败时如何用默认图片来替换呢?

[html] img中的src加载失败时如何用默认图片来替换呢&#xff1f; img有onerror属性&#xff0c;加载失败时触发error事件 但是这种解决方法在error里面替换的默认图片也加载失败的时候会导致问题&#xff0c;需要注意个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端…

学完php在学python_写给PHP程序员的 Python学习指南(建议去看原文)

原文&#xff1a;https://segmentfault.com/a/1190000019710720一、背景人工智能这几年一直都比较火&#xff0c;笔者一直想去学习一番&#xff1b;因为一直是从事PHP开发工作&#xff0c;对于Python接触并不算多&#xff0c;总是在关键时候面临着 基础不牢&#xff0c;地动山摇…

mysql 实例复制_MYSQL教程MySQL 复制详解及简单实例

《MysqL教程MysqL 复制详解及简单实例》要点&#xff1a;本文介绍了MysqL教程MysqL 复制详解及简单实例&#xff0c;希望对您有用。如果有疑问&#xff0c;可以联系我们。MysqL 复制详解及简单实例主从复制技术在MysqL中被广泛使用,主要用于同步一台服务器上的数据至多台从服务…

[html] 解释下什么是CDATA?

[html] 解释下什么是CDATA&#xff1f; CDATA 指的是不由 XML 解析器进行解析的文本数据。XML 文档中的所有文本均会被解析器解析。只有 CDATA 区段中的文本会被解析器忽略。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很…

kali字典_kali黑客系统wpscan工具扫描wordpress漏洞入侵攻击测试教程

WPScan是Kali Linux默认自带的一款漏洞扫描工具&#xff0c;它采用Ruby编写&#xff0c;能够扫描WordPress网站中的多种安全漏洞&#xff0c;其中包括主题漏洞、插件漏洞和WordPress本身的漏洞。最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞&#xff0c;并…

局部遮罩 shade(二)

其实它和全局遮罩是一样的思想&#xff0c;只不过就要用position了 <script type"text/javascript">function shade(){var p document.getElementById("shade");p.className "d";p.style.display "block";}function shadeDis…

[html] 移动端如何禁止用户手动缩放页面?

[html] 移动端如何禁止用户手动缩放页面&#xff1f; <meta name"viewport" content"widthdevice-width,initial-scale1,maximum-scale1,minimum-scale1,user-scalableno">个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易…

python怎么填充画布_如何在kivy中用图像填充画布?

矩形设置为MyPaintWidget的大小&#xff0c;在父小部件上以默认大小绘制。如果MyPaintWidget是根小部件&#xff0c;那么设置self.size将允许它占用整个窗口空间。(请注意&#xff0c;当前结构只会在on-touch-down事件上调整画布的大小。因此&#xff0c;如果调整窗口大小&…

[html] HTML5的video怎样预加载(支持全量加载)?

[html] HTML5的video怎样预加载&#xff08;支持全量加载&#xff09;&#xff1f; preload"auto"个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

mysql df_MySQL主从复制实战

什么是主从复制使用两个或两个以上的数据库&#xff0c;一部分数据库当做主数据库&#xff0c;而另一部分数据库当做从数据库。系统在主数据库中进行写操作&#xff0c;从数据库记录在主库上所有的写操作&#xff0c;使得主从数据库的数据保持一致。一旦主数据库出现问题时&…

python logistic回归_logistic回归介绍与源码分析

1. 介绍&#xff08;由线性模型引出logistic回归&#xff09;首先介绍一下什么是线性模型呢&#xff1f;线性模型的定义如下&#xff1a;给定 个属性描述的样本 &#xff0c; 代表样本在第 个属性上的取值。线性模型的目的是学习一个函数&#xff0c;它可以通过属性的线性组合来…

[html] 列举几种多列等高布局的方法

[html] 列举几种多列等高布局的方法 1, 使用table布局 .row { display: table; }.row > * { display: table-cell; }2, 使用flex布局.row { display: flex; flex-wrap: wrap; } .row > * { display: flex; flex-direction: column; }个人简介 我是歌谣&#xff0c;欢迎…

当前标签: Entity Framework

当前标签: Entity Framework在Entity Framework中使用泛型 qouoww 2012-04-29 22:39 阅读:1937 评论:4 一步一步学Entity Framework 4.x (3) qouoww 2012-04-27 17:20 阅读:2569 评论:8 一步一步学Entity Framework 4(2) qouoww 2012-04-27 09:10 阅读:2972 评论:7 一步一步…

case mybatis 不同表_解决mybatis case when 报错的问题

在mybatis中使用case when进行条件筛选判断时遇到Failed to process, please exclude the tableName or statementId.这样的报错信息&#xff0c;报错的信息是语法错误但是我在mysql的命令行中运行sql语句是没问题的//我的case when语句WHERE dept.type 1AND(CASE agent.dept_…