当你通过构建工具使用时,Vue 的许多 API 都是可以“tree-shake”的。例如,如果你不使用内置的 <Transition>
组件,它就不会被包含在最终的生产环境包里。
对于一个 Vue 的最少 API 使用的 hello world 应用来说,配合最小化和 brotli 压缩,其基线大小只有 16kb 左右。但实际的应用大小取决于你使用了多少框架的可选特性。在极端情况下,如果一个应用使用了 Vue 提供的每一个特性,那么总的运行时大小大约为 27kb。
如果不通过构建工具使用 Vue,我们不仅失去了 tree-shaking,而且还必须将模板编译器加载到浏览器。这就使包体积增大到了 41kb 左右。因此,如果你为了渐进式增强在没有构建步骤的情况下使用 Vue,则可以考虑使用 petite-vue (仅 6kb) 来代替。
一些诸如 Svelte 的框架使用了一种为单个组件产生极轻量级输出的编译策略。然而,我们的研究表明,包大小的差异在很大程度上取决于应用中的组件数量。虽然 Vue 的基线大小更重,但它生成的每个组件的代码更少。在现实的场景中,Vue 应用很可能最终会更轻。
网友回答文明上网理性发言已有0人参与
发表评论: