直接在 HTML 中引入 Vue 的开发版本(无需编译)
当你直接在 HTML 文件里通过 `<script>` 标签引入 Vue 的开发版本时,无需进行编译。示例如下:
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue Without Compilation</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
<div id="app">
{{ message }}
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Hello, Vue!'
}
});
</script>
</body>
</html>
在这个例子中,Vue 会在浏览器中实时解析和渲染模板,因为开发版本的 Vue 包含了编译器,能直接处理模板字符串。
使用单文件组件(SFC,需要编译)
在实际的项目开发中,更多会使用 Vue 的单文件组件(`.vue` 文件)。这种文件将 HTML、CSS 和 JavaScript 封装在一个文件里,具有更好的可维护性和模块化。但浏览器无法直接识别 `.vue` 文件,所以需要进行编译。
编译的原因
- **模板语法转换**:Vue 的模板语法(如 `{{ }}` 插值、`v-bind`、`v-for` 等)在浏览器中是无法直接解析的,需要将其转换为浏览器能理解的 JavaScript 代码。
- **CSS 处理**:单文件组件中的 CSS 可能会使用一些预处理器(如 Sass、Less),需要将其编译为普通的 CSS。
- **打包优化**:将多个 `.vue` 文件和其他静态资源(如图片、字体)打包成少量的文件,减少浏览器的请求次数,提高加载速度。
编译工具
通常会使用 Vue CLI 或者 Vite 来创建和管理 Vue 项目,它们会自动配置好编译环境。以 Vue CLI 为例,使用以下步骤创建项目:
1. 全局安装 Vue CLI:
bash
npm install -g @vue/cli
2. 创建一个新的 Vue 项目:
bash
vue create my-project
cd my-project
3. 启动开发服务器:
bash
npm run serve
在这个过程中,Vue CLI 会在后台使用 webpack 对项目进行编译和打包。
使用 Vue 3 的 `<script setup>` 语法(需要编译)
Vue 3 引入了 `<script setup>` 语法,它提供了更简洁的语法来编写组件逻辑。同样,这种语法也需要编译成普通的 JavaScript 代码才能在浏览器中运行。例如:
vue
<template>
<div>{{ message }}</div>
</template>
<script setup>
import { ref } from 'vue';
const message = ref('Hello, Vue 3!');
</script>
这里的 `<script setup>` 代码需要经过编译,将 `ref` 等响应式 API 转换为浏览器能理解的代码。
综上所述,虽然直接引入 Vue 开发版本无需编译,但在实际项目中,为了使用单文件组件、新的语法特性以及优化项目性能,通常都需要对 Vue 代码进行编译。