🐸 青蛙编程网
首页 / 前端 / Vue / 1. Vue 是什么

1. Vue 是什么

这是什么:Vue = 一套渐进式前端框架,核心是数据驱动视图——你只管改数据,页面自己更新。

为什么用:上一章用 jQuery 做待办清单,改文本、绑事件、调样式全得手工维护,漏一处就是 bug。换成 Vue,同一份数据改一次,所有引用它的地方自动跟着变。

如何用:本章用同一个「显示名字、点击换人」的需求,把 jQuery 写法和 Vue 写法并排放在一起对比着看。

1.1 数据驱动视图

传统写法(jQuery 思路):数据变了 → 手工找到元素 → 手工更新。直接贴进右侧运行场就能跑:

<p>已有 <span id='count'>0</span> 条任务</p>

<!-- 公开 CDN 引入 jQuery,无需安装任何工具 -->
<script src='https://registry.npmmirror.com/jquery/3.7.1/files/dist/jquery.min.js'></script>
<script>
  const tasks = ['买菜', '写作业']
  $('#count').text(tasks.length)   // 手工找元素,手工更新
</script>

你会看到:已有 2 条任务。

Vue 思路:数据在哪、视图显示什么,声明清楚就完事,没有一行手工更新代码:

<div id='app'>已有 {{ tasks.length }} 条任务</div>

<!-- 公开 CDN 引入 Vue,无需安装任何工具 -->
<script src='https://registry.npmmirror.com/vue/3.5.44/files/dist/vue.global.prod.js'></script>
<script>
  const { createApp, ref } = Vue
  createApp({ setup() {
    const tasks = ref(['买菜', '写作业'])   // 只管改数据,页面自己刷新
    return { tasks }
  } }).mount('#app')
</script>

你会看到:同样一行 已有 2 条任务。

tasks.length 一变,页面对应位置自动刷新。想象页面里有 10 处引用同一个数据——jQuery 要写 10 行更新代码,Vue 一行都不用写。

1.2 直观对比

需求:显示名字,点击按钮换人。

jQuery 版:

<!DOCTYPE html>
<html lang='zh-CN'>
<head>
  <meta charset='utf-8'>
  <script src='https://registry.npmmirror.com/jquery/3.7.1/files/dist/jquery.min.js'></script>
</head<body>
  <p id='who'>青蛙</p>
  <button id='btn'>换人</button>

  <script>
    let name = '青蛙'
    $('#who').text(name)
    $('#btn').click(function () {
      name = '熊猫'
      $('#who').text(name)   // 忘写这行就是 bug
    })
  </script>
</body>
</html>

你会看到:页面上是「青蛙」和一个「换人」按钮,点一下变「熊猫」。

Vue 版(免构建,浏览器打开即跑):

<!DOCTYPE html>
<html lang='zh-CN'>
<head>
  <meta charset='utf-8'>
  <!-- 一行公开 CDN 引入 Vue,无需安装任何工具 -->
  <script src='https://registry.npmmirror.com/vue/3.5.44/files/dist/vue.global.prod.js'></script>
</head>
<body>
  <div id='app'>
    <p>{{ name }}</p>
    <button @click="name = '熊猫'">换人</button>
  </div>

  <script>
    const { createApp, ref } = Vue
    createApp({
      setup() {
        const name = ref('青蛙')
        return { name }
      }
    }).mount('#app')
  </script>
</body>
</html>

你会看到:页面上同样是「青蛙」加「换人」按钮,点一下变「熊猫」。

和 jQuery 版逐行对比:数据只有一句 const name = ref('青蛙'),点按钮改 name,页面自动跟着变——没有一行手工找元素。这段代码可以整个复制进右侧运行框直接跑。

对比项 jQuery Vue
页面更新 手工调 .text()/.html() 改数据自动更新
当元素数量多时 逐个操作,容易漏 一处声明,处处响应
HTML 结构 散落在字符串拼接里 template 里所见即所得

1.3 什么时候用 Vue

  • 页面数据频繁变化(列表、表单、实时状态)
  • 多人协作的中小项目(组件清晰可分工)
  • 你已经懂 HTML/CSS/JS——Vue 学习曲线是三大框架里最平缓的

1.4 动手改

把 1.2 的两版都整段贴进右侧「在线运行场」点运行,各玩一遍「换人」。再思考:需求改成「点击第二次换回青蛙」,两种写法各要改几处?

1.5 小结

  • Vue = 声明式数据驱动的世界:数据是唯一真相,视图自动跟随
  • jQuery 是命令式的「手工大国」,Vue 是声明式的「数据主导」
  • 本教程基线 Vue 3 + Composition API,全程用公开 CDN 的免构建写法(浏览器里直接跑);工程化(npm/Vite)在第 8 章末尾作进阶了解

下一章:第一个页面:零工具起步 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。