指南
基础
- 安装
- 介绍
- Vue 实例
- 模板语法
- 计算属性和侦听器
- 类和样式绑定
- 条件渲染
- 列表渲染
- 事件处理
- 表单输入绑定
- 组件基础
组件深入
- 组件注册
- Props
- 自定义事件
- 插槽
- 动态和异步组件
- 处理边缘情况
过渡和动画
- 进入/离开和列表过渡
- 状态过渡
可重用性和组合
- 混入
- 自定义指令
- 渲染函数和 JSX
- 插件
- 过滤器
工具
- 单文件组件
- 测试
- TypeScript 支持
- 生产部署
扩展
- 路由
- 状态管理
- 服务器端渲染
- 安全
内部机制
- 深入响应性
迁移
- 从 Vue 1.x 迁移
- 从 Vue Router 0.7.x 迁移
- 从 Vuex 0.6.x 迁移到 1.0
- 迁移到 Vue 2.7
元数据
- 与其他框架的比较
- 加入 Vue.js 社区!
- 认识团队
安装
兼容性说明
Vue **不支持** IE8 及更低版本,因为它使用 IE8 中无法模拟的 ECMAScript 5 功能。但是它支持所有 兼容 ECMAScript 5 的浏览器。
语义版本控制
Vue 在其所有官方项目中遵循 语义版本控制,用于记录的功能和行为。对于未记录的行为或公开的内部机制,更改将在 发行说明 中描述。
发行说明
最新稳定版本:2.7.16
每个版本的详细发行说明可在 GitHub 上找到。
Vue 开发者工具
在使用 Vue 时,我们建议您在浏览器中安装 Vue 开发者工具,它允许您以更友好的界面检查和调试 Vue 应用程序。
直接 <script>
包含
只需下载并使用脚本标签包含。Vue
将注册为全局变量。
在开发过程中不要使用压缩版本。您将错过所有针对常见错误的友好警告!
CDN
为了原型设计或学习目的,您可以使用最新版本:
|
在生产环境中,我们建议链接到特定的版本号和构建,以避免来自新版本的不必要的破坏
|
如果您使用的是原生 ES 模块,还有一个与 ES 模块兼容的构建
|
您可以在 cdn.jsdelivr.net/npm/vue 上浏览 NPM 包的源代码。
Vue 也可在 unpkg 和 cdnjs 上使用(cdnjs 需要一些时间同步,因此最新版本可能尚未可用)。
请务必阅读有关 Vue 的不同构建 的内容,并在发布的网站中使用 **生产
版本**,将 vue.js
替换为 vue.min.js
。这是一个更小的构建,针对速度而不是开发体验进行了优化。
NPM
在使用 Vue 构建大型应用程序时,NPM 是推荐的安装方法。它与模块打包器(如 Webpack 或 Browserify)完美搭配。Vue 还提供用于编写 单文件组件 的配套工具。
|
CLI
Vue 提供了一个 官方 CLI,用于快速搭建雄心勃勃的单页应用程序。它为现代前端工作流程提供了包含电池的构建设置。只需几分钟即可使用热重载、保存时 lint 和生产就绪的构建启动和运行。有关更多详细信息,请参阅 Vue CLI 文档。
CLI 假设您已了解 Node.js 和相关的构建工具。如果您不熟悉 Vue 或前端构建工具,我们强烈建议您在使用 CLI 之前先浏览 指南,而无需任何构建工具。
不同构建的解释
在 dist/
目录中,您将找到许多不同版本的 Vue.js。以下是它们之间区别的概述
UMD | CommonJS | ES 模块(用于打包器) | ES 模块(用于浏览器) | |
---|---|---|---|---|
完整版 | vue.js | vue.common.js | vue.esm.js | vue.esm.browser.js |
仅运行时 | vue.runtime.js | vue.runtime.common.js | vue.runtime.esm.js | - |
完整版(生产) | vue.min.js | - | - | vue.esm.browser.min.js |
仅运行时(生产) | vue.runtime.min.js | - | - | - |
术语
完整版:包含编译器和运行时的构建。
编译器:负责将模板字符串编译为 JavaScript 渲染函数的代码。
运行时:负责创建 Vue 实例、渲染和修补虚拟 DOM 等的代码。基本上除了编译器之外的所有内容。
UMD:UMD 构建可以通过
<script>
标签直接在浏览器中使用。来自 jsDelivr CDN 的默认文件 https://cdn.jsdelivr.net.cn/npm/vue@2.7.16 是运行时 + 编译器 UMD 构建 (vue.js
)。CommonJS:CommonJS 构建旨在与旧的打包器(如 browserify 或 webpack 1)一起使用。这些打包器的默认文件 (
pkg.main
) 是仅运行时 CommonJS 构建 (vue.runtime.common.js
)。ES 模块:从 2.6 开始,Vue 提供了两种 ES 模块 (ESM) 构建
运行时 + 编译器与仅运行时
如果您需要在客户端编译模板(例如,将字符串传递给 template
选项,或使用其 DOM 内 HTML 作为模板挂载到元素),您将需要编译器,因此需要完整构建
|
在使用 vue-loader
或 vueify
时,*.vue
文件中的模板在构建时会预编译为 JavaScript。您实际上不需要最终捆绑包中的编译器,因此可以使用仅运行时构建。
由于仅运行时构建比完整构建的对应版本轻约 30%,因此您应该尽可能使用它。如果您仍然希望使用完整构建,则需要在打包器中配置别名
Webpack
|
Rollup
|
Browserify
添加到项目的 package.json
中
|
Parcel
添加到项目的 package.json
中
|
开发模式与生产模式
开发/生产模式是为 UMD 构建硬编码的:未压缩的文件用于开发,压缩的文件用于生产。
CommonJS 和 ES 模块构建旨在用于打包器,因此我们不为它们提供压缩版本。您将负责自己压缩最终捆绑包。
CommonJS 和 ES 模块构建还保留了对 process.env.NODE_ENV
的原始检查,以确定它们应该运行的模式。您应该使用适当的打包器配置来替换这些环境变量,以控制 Vue 将运行的模式。用字符串字面量替换 process.env.NODE_ENV
也允许像 UglifyJS 这样的压缩器完全删除仅开发的代码块,从而减小最终文件大小。
Webpack
在 Webpack 4+ 中,您可以使用 mode
选项
|
但在 Webpack 3 及更早版本中,您需要使用 DefinePlugin
|
Rollup
|
Browserify
将全局 envify 转换应用于您的捆绑包。
|
另请参阅 生产部署技巧。
CSP 环境
某些环境(如 Google Chrome 应用)强制执行内容安全策略 (CSP),这禁止使用 new Function()
来评估表达式。完整构建依赖于此功能来编译模板,因此在这些环境中不可用。
另一方面,运行时构建完全符合 CSP 规范。当使用运行时构建与 Webpack + vue-loader 或 Browserify + vueify 一起使用时,您的模板将被预编译成 render
函数,这些函数在 CSP 环境中完美运行。
开发构建
重要:GitHub 的 /dist
文件夹中的构建文件仅在发布时才会签入。要使用 GitHub 上的最新源代码中的 Vue,您需要自己构建它!
|
Bower
Bower 仅提供 UMD 构建。
|
AMD 模块加载器
所有 UMD 构建可以直接用作 AMD 模块。