Vite 进阶路线 | 青训营笔记

70 阅读3分钟

这是我参与「第五届青训营」伴学笔记创作活动的第20天

一、本节课重点内容

在基本的原理及实践讲解完成后,讲师将在本节课中进一步介绍 Vite 的生态及进阶工程路线,带我们梳理前端架构领域中更为深层次的学习领域,帮助我们在日常生活中,也能做到有的放矢地学习前端的相关内容,能更为精确的把握住学习的重心所在。

本节课的课程重点内容归纳如下:

  1. 深入双引擎
  2. Vite 插件开发
  3. 代码分割(拆包)
  4. JS 编译工具(Babel)
  5. 语法安全降级
  6. 服务端渲染(SSR)
  7. 深入了解底层标准
  8. Vite 社区生态

二、详细知识点介绍

  1. 深入双引擎 两个非常依赖的部件引擎: image.png 推荐学习顺序:
  • 先了解基本使用,动手尝试各项常用配置;
  • 然后学习其插件开发。
  1. Vite 插件开发

为什么需要插件机制?

  • 抽离核心逻辑,抽离serve,更加的容易服务修改;
  • 易于拓展 image.png 掌握一些常用的启动、请求响应、更新、关闭即可。

参考资料:

  • Vite插件开发文档
  • 复杂度较低的插件: json加载插件
  • 复杂度中等的插件: Esbuild接入插件
  • 复杂度较高的插件:宜方React插件

先看文档,过一遍插件钩子的功能,然后多学习其它插件的实现,掌握套路

  1. 代码分割(拆包)

只有一个代码就会效率很低,拆包之后会有更快的加载速度和更为方便的开发方式。 image.png 4. JS 编译工具(Babel)

image.png 出现的原因:

  • JavaScript语法标准繁多,浏览器支持程度不一
  • 开发者需要用到高级语法
  1. 语法安全降级 没有内置的API,如果不降级,就会出现浏览器页面无法加载的问题。 image.png 如何在构建产物中避免这类问题?
  • 上层解决方案: @vitejs/plugin-legacy
  • 底层原理:
    • 借助Babel进行语法自动降级
    • 提前注入Polyfill实现,如core-js、regenerator-runtime
  1. 服务端渲染(SSR) 在代码执行的阶段开始跑,这样的话前端拿到的就是完整的HTML页面。 image.png
  2. 深入了解底层标准 image.png
  3. Vite 社区生态 向Github 40k+ star (可参考webpack 61.3 K, rollup 21.8 k),并且目前还在持续维护 <官方提供插件:
  • @vitejs/plugin-vue,提供Vue 3支持
  • @vitejs/ plugin-vue -jsx,提供Vue 3 JSX支持
  • @vitejs/plugin-react,提供React支持
  • @vitejs/plugin-legacy,提供低版本浏览器降级支持 凸海量社区插件:https://github。com/vitejs/awesome-vite 众多框架内置
  • Nuxt
  • SvelteKit
  • Astro
  • Vitepress

三、总结

对Vite 进阶路线 有了一个清晰的了解,对前端知识的学习有了新的看法,拓展的学习内容和学习社区、插件也会有利于我进行前端技术的学习。 部分手册与插件如下所示: link.juejin.cn/?target=htt… link.juejin.cn/?target=htt… link.juejin.cn/?target=htt… link.juejin.cn/?target=htt… link.juejin.cn/?target=htt…