你不需要在机器上安装任何东西,也可以尝试基于单文件组件的 Vue 开发体验。我们提供了一个在线的演练场,可以在浏览器中访问:
在报告 Bug 时,我们也建议使用这些在线演练场来提供最小化重现。
Vite 是一个轻量级的、速度极快的构建工具,对 Vue 单文件组件提供第一优先级支持。作者是尤雨溪,同时也是 Vue 的作者!
要使用 Vite 来创建一个 Vue 项目,非常简单:
$ npm create vue@latest
$ pnpm create vue@latest
# For Yarn Modern (v2+)
$ yarn create vue@latest
# For Yarn ^v4.11
$ yarn dlx create-vue@latest
$ bun create vue@latest
这个命令会安装和执行 create-vue,它是 Vue 提供的官方脚手架工具。跟随命令行的提示继续操作即可。
上面提到的两种在线演练场也支持将文件作为一个 Vite 项目下载。
Vue CLI 是官方提供的基于 Webpack 的 Vue 工具链,它现在处于维护模式。我们建议使用 Vite 开始新的项目,除非你依赖特定的 Webpack 的特性。在大多数情况下,Vite 将提供更优秀的开发体验。
关于从 Vue CLI 迁移到 Vite 的资源:
当以无构建步骤方式使用 Vue 时,组件模板要么是写在页面的 HTML 中,要么是内联的 JavaScript 字符串。在这些场景中,为了执行动态模板编译,Vue 需要将模板编译器运行在浏览器中。相对的,如果我们使用了构建步骤,由于提前编译了模板,那么就无须再在浏览器中运行了。为了减小打包出的客户端代码体积,Vue 提供了多种格式的“构建文件”以适配不同场景下的优化需求。
vue.runtime.*
的文件是只包含运行时的版本:不包含编译器,当使用这个版本时,所有的模板都必须由构建步骤预先编译。.runtime
的文件则是完全版:即包含了编译器,并支持在浏览器中直接编译模板。然而,体积也会因此增长大约 14kb。默认的工具链中都会使用仅含运行时的版本,因为所有单文件组件中的模板都已经被预编译了。如果因为某些原因,在有构建步骤时,你仍需要浏览器内的模板编译,你可以更改构建工具配置,将 vue
改为相应的版本 vue/dist/vue.esm-bundler.js
。
如果你需要一种更轻量级,不依赖构建步骤的替代方案,也可以看看 petite-vue。
推荐使用的 IDE 是 VS Code,配合 Vue - Official 扩展 (之前是 Volar)。该插件提供了语法高亮、TypeScript 支持,以及模板内表达式与组件 props 的智能提示。
TIP
Vue - Official 取代了我们之前为 Vue 2 提供的官方 VS Code 扩展 Vetur。如果你之前已经安装了 Vetur,请确保在 Vue 3 的项目中禁用它。
WebStorm 同样也为 Vue 的单文件组件提供了很好的内置支持。
其他支持语言服务协议 (LSP) 的 IDE 也可以通过 LSP 享受到 Volar 所提供的核心功能:
Vue 的浏览器开发者插件使我们可以浏览一个 Vue 应用的组件树,查看各个组件的状态,追踪状态管理的事件,还可以进行组件性能分析。
具体细节请参考章节:配合 TypeScript 使用 Vue。
<script lang="ts">
块提供类型检查,也能对模板内表达式和组件之间 props 提供自动补全和类型验证。vue-tsc
可以在命令行中执行相同的类型检查,通常用来生成单文件组件的 d.ts
文件。具体细节请参考章节:测试指南。
Vue 团队维护着 eslint-plugin-vue 项目,它是一个 ESLint 插件,会提供单文件组件相关规则的定义。
之前使用 Vue CLI 的用户可能习惯于通过 webpack loader 来配置规范检查器。然而,若基于 Vite 构建,我们一般推荐:
npm install -D eslint eslint-plugin-vue
,然后遵照 eslint-plugin-vue
的指引进行配置。自定义块被编译成导入到同一 Vue 文件的不同请求查询。这取决于底层构建工具如何处理这类导入请求。
@vue/compiler-sfc
这个包是 Vue 核心 monorepo 的一部分,并始终和 vue
主包版本号保持一致。它已经成为 vue
主包的一个依赖并代理到了 vue/compiler-sfc
目录下,因此你无需单独安装它。
这个包本身提供了处理 Vue 单文件组件的底层的功能,并只适用于需要支持 Vue 单文件组件相关工具链的开发者。
TIP
请始终选择通过 vue/compiler-sfc
的深度导入来使用这个包,因为这样可以确保其与 Vue 运行时版本同步。
@vitejs/plugin-vue
为 Vite 提供 Vue 单文件组件支持的官方插件。
vue-loader
为 webpack 提供 Vue 单文件组件支持的官方 loader。如果你正在使用 Vue CLI,也可以看看如何在 Vue CLI 中更改 vue-loader
选项的文档。