| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> Vue3之——和Vite不得不说的事 -> 正文阅读 |
|
[JavaScript知识库]Vue3之——和Vite不得不说的事 |
1.创建一个vite项目
或者
2.vite简介 快速的冷启动,不需要等待打包操作; 尤神放弃webpack 3.第一个疑问 模块请求
最直观地看到这里:
这里编译了Helloworld.vue中的style样式,将p{color:red}进行了编译;
同时还对全局样式进行了更新监听。 既然浏览器直接请求了.vue 文件,那么文件内容是如何做出解析的呢。项目是如何在不使用webpack等打包工具的条件下如何直接运行vue文件。 3.1挖掘vite运行原理 其最大的特点是在浏览器端使用 export import 的方式导入和导出模块,在 script 标签里设置 type=“module” ,然后使用 ES module。 正因如此,vite高度依赖module script特性,也就意味着从这里开始抛弃了IE市场,参见Javascript MDN。 在这种操作下,伴随的另一个效果就是去掉了webpack打包步骤,不用再将各个模块文件打包成一个bundle,以便支持浏览器的模块化加载。那么vite是如何处理这些模块的呢? 关键在于vite使用Koa构建的服务端,在createServer中主要通过中间件注册相关功能。 vite 对 import 都做了一层处理,其过程如下: 在 koa 中间件里获取请求 body 为什么这里需要@modules? 举个栗子: import vue from ‘vue’ 通过koa middleware正则匹配上带有@modules的资源,再通过require(‘XXX’)获取到导出资源并返给浏览器。 3.2文件请求 根据ctx.path确定请求具体的vue文件 type为空时表示处理script标签,使用compileSFCMain方法返回js内容 从另一方面来看,这也是一个非常有趣的方法,webpack之类的打包工具会把各种各样的模块提前打包进bundle中,但打包结果是静态的,不管某个模块的代码是否用得到,它都要被打包进去,显而易见的坏处就是随着项目越来越大,打包文件也越来越大。vite的优雅之处就在于需要某个模块时动态引入,而不是提前打包,自然而然提高了开发体验。 4.hmr热更新 通过 watcher 监听文件改动; vue-reload —— vue 组件更新:通过 import 导入新的 vue 组件,然后执行 HMRRuntime.reload |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:58:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |