Vue

Vue

构建用户界面的渐进式 JavaScript 框架,声明式渲染加自动响应式更新

核心功能

在标准 HTML、CSS、JavaScript 之上提供声明式、组件化的编程范式:模板描述界面长什么样,状态一变框架自动更新 DOM。既能用一个 script 标签增强静态页面,也能撑起完整的单页应用或服务端渲染项目。

功能亮点

模板即 HTML 的超集

在普通 HTML 上加 {{ }} 插值和 @click 这类指令,不熟悉 JSX 也能直接上手写界面

状态改了界面自己变

ref 包裹的值被修改后,框架追踪到读取它的位置并只更新受影响的那部分 DOM

一个文件装下一个组件

SFC 把 script、template、style 三段收进同一个 .vue 文件,样式还能用 scoped 隔离

两种写法自由选择

Options API 更贴近面向对象的思维习惯,Composition API 便于把逻辑抽成可复用的组合函数

可以完全不用构建工具

一行 script 标签引入 CDN 版本,就能给已有的服务端渲染页面加上交互,代价是用不了 SFC

适用场景

• 基于 Vite 搭建单页应用,用 create-vue 一次性配好路由、状态管理和测试
• 给已有的服务端渲染页面加交互:CDN 引入 Vue 后挂载到某个容器,不引入构建流程
• 需要 SSR / SSG 时改用 Nuxt 等上层框架,组件写法保持一致

安装配置

bash
创建项目(需要 Node.js ^22.18.0 || >=24.12.0)——

npm:
npm create vue@latest

pnpm:
pnpm create vue@latest

Yarn(v1+):
yarn create vue

Yarn Modern(v2+):
yarn create vue@latest

Yarn ^v4.11:
yarn dlx create-vue@latest

Bun:
bun create vue@latest

创建后安装依赖并启动开发服务器:
cd <your-project-name>
npm install
npm run dev

生产构建(产物在 ./dist):
npm run build

不走构建、直接用 CDN:
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

使用方法

javascript
<!-- 单文件组件,Composition API + <script setup> 写法 -->
<script setup>
import { ref } from 'vue'
const count = ref(0)
</script>

<template>
  <button @click="count++">Count is: {{ count }}</button>
</template>

<style scoped>
button {
  font-weight: bold;
}
</style>

<!-- 无构建步骤时,用 CDN 全局构建版 -->
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<div id="app">{{ message }}</div>
<script>
  const { createApp, ref } = Vue
  createApp({
    setup() {
      const message = ref('Hello vue!')
      return { message }
    }
  }).mount('#app')
</script>

关键指标

尚未核验对标产品,此处只列本工具自身指标,不做对比结论。

指标Vue
价格免费
开源
上手难度入门

相关工具

同类工具

优点

  • 模板建立在标准 HTML 之上,@click、{{ }} 这类语法对写过服务端模板的人几乎零门槛
  • 响应式由框架自动追踪,改 ref 的值即可触发更新,不需要手动声明依赖或调用更新函数
  • 单文件组件把逻辑、模板、scoped 样式收进一个 .vue 文件,样式默认不会泄漏到别的组件
  • 采纳方式可大可小:从 CDN 增强静态页,到 SPA、SSR、SSG,核心知识一路通用

缺点

  • Options API 与 Composition API 两套风格并存,团队需要先约定统一写法,否则代码库风格不一致
  • SFC 语法依赖构建工具,选择 CDN 免构建路线时就用不了 .vue 文件写法
  • Vue 2 已于 2023 年 12 月 31 日结束支持,仍在 Vue 2 上的老项目需要按迁移指南升级