零基础也能上手的 Vue.js 入门指南

王者_胡勇_领袖
2026-02-28 18:28
阅读 1750

大家好,我是一个从中文系转行做前端开发的“野生程序员”。当初学 Vue 的时候,连 HTML 是什么都不知道,更别提 JavaScript 了。但今天,我不仅能用 Vue 写项目,还带过不少零基础的同学入门。所以这篇教程,就是写给像我当年一样——对代码一无所知、但又想做出酷炫网页的你。

这篇文章不讲大道理,只教你能跑起来的代码。哪怕你从来没碰过 React 或 JavaScript,也能跟着一步步操作。我们还会聊聊为什么选 Vue 而不是 React,以及如何避开那些让我踩过的大坑。


为什么是 Vue?它和 React 有啥区别?

Vue.js(简称 Vue)是一个用来构建用户界面的 JavaScript 框架。简单说,它帮你用更少的代码,做出更动态、更交互的网页。

比如:点一个按钮,页面内容自动更新;输入框打字,下方实时显示你输入的内容——这些在传统 HTML 里很难实现,但在 Vue 里只要几行代码。

那为什么不用 React 呢?作为过来人,我的建议是:

对比项 Vue React
学习曲线 更平缓,适合零基础 需要先理解 JSX、状态管理等概念
代码风格 接近 HTML,直观易懂 用 JavaScript 写 HTML,初看有点怪
上手速度 几分钟就能跑通第一个例子 通常需要配置更多工具
社区生态 中文文档完善,国内公司用得很多 全球流行,但新手容易被各种库绕晕

我当初学的时候,先试了 React,结果光是配置开发环境就折腾了三天。后来改学 Vue,第二天就做出了自己的第一个待办事项列表!

所以,如果你是完全零基础,Vue 是更友好的起点。


第一步:搭建你的开发环境

别担心,现在装 Vue 比装微信还简单!

你需要准备:

  1. 一台电脑(Windows/Mac/Linux 都行)
  2. 一个浏览器(Chrome 或 Edge 最佳)
  3. 安装 Node.js(选 LTS 版本)

小贴士:安装 Node.js 后,你的电脑就拥有了运行 JavaScript 的能力,还能使用 npm(包管理器)来安装 Vue。

创建第一个 Vue 项目(超简单版)

打开终端(Mac 用 Terminal,Windows 用 PowerShell 或 CMD),输入以下命令:

# 1. 全局安装 Vue CLI(只需一次)
npm install -g @vue/cli

# 2. 创建新项目(比如叫 my-vue-app)
vue create my-vue-app

# 3. 进入项目文件夹
cd my-vue-app

# 4. 启动开发服务器
npm run serve

看到 App running at: http://localhost:8080/ 就成功了!打开浏览器访问这个地址,你会看到 Vue 的欢迎页面。

⚠️ 新手常见问题:如果卡在 vue create 步骤,可以按回车选择默认配置(Default Vue 3 preset),不用纠结选项。


核心概念:Vue 到底怎么“动”起来的?

Vue 的核心思想就两个字:响应式

意思是:数据变了,页面自动更新。你不用手动操作 DOM(比如用 document.getElementById),Vue 会帮你搞定。

1. 模板语法:用双花括号插值

<template>
  <div>
    <h1>你好,{{ name }}!</h1>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: "小明"
    }
  }
}
</script>

这段代码中,{{ name }} 会自动显示为 “小明”。如果后面 name 变成 “小红”,页面上的文字也会立刻变成 “你好,小红!”。

2. 事件处理:点击按钮改变数据

<template>
  <div>
    <p>你点了 {{ count }} 次</p>
    <button @click="count++">点我</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      count: 0
    }
  }
}
</script>

注意:@click 是 Vue 的语法糖,等价于 v-on:click。点击按钮,count 自增,页面数字自动更新。

3. 条件渲染与循环

<template>
  <div>
    <!-- 如果 show 为 true,才显示 -->
    <p v-if="show">我是隐藏的宝藏!</p>

    <!-- 循环渲染列表 -->
    <ul>
      <li v-for="item in items" :key="item.id">
        {{ item.text }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      show: true,
      items: [
        { id: 1, text: "苹果" },
        { id: 2, text: "香蕉" },
        { id: 3, text: "橙子" }
      ]
    }
  }
}
</script>

我当初学的时候,总忘记写 :key,结果列表更新时出现奇怪 bug。记住:v-for 一定要加 :key,而且 key 要唯一!


实战:做一个简单的待办事项(Todo List)

现在,我们把上面的知识点串起来,做一个真实的小项目。

步骤 1:清空 src/App.vue,替换为以下代码

<template>
  <div id="app">
    <h1>我的待办清单</h1>
    
    <!-- 输入框 + 添加按钮 -->
    <div>
      <input v-model="newTask" @keyup.enter="addTask" placeholder="输入新任务" />
      <button @click="addTask">添加</button>
    </div>

    <!-- 任务列表 -->
    <ul>
      <li v-for="task in tasks" :key="task.id">
        <span :class="{ completed: task.done }">{{ task.text }}</span>
        <button @click="toggleTask(task)">✓</button>
        <button @click="removeTask(task.id)">×</button>
      </li>
    </ul>

    <!-- 统计 -->
    <p>共 {{ tasks.length }} 项,已完成 {{ completedCount }} 项</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      newTask: '',
      tasks: [
        { id: 1, text: '学习 Vue', done: false }
      ]
    }
  },
  computed: {
    completedCount() {
      return this.tasks.filter(t => t.done).length;
    }
  },
  methods: {
    addTask() {
      if (this.newTask.trim()) {
        this.tasks.push({
          id: Date.now(),
          text: this.newTask,
          done: false
        });
        this.newTask = '';
      }
    },
    toggleTask(task) {
      task.done = !task.done;
    },
    removeTask(id) {
      this.tasks = this.tasks.filter(t => t.id !== id);
    }
  }
}
</script>

<style>
.completed {
  text-decoration: line-through;
  color: #999;
}
</style>

步骤 2:保存并查看效果

  • 在输入框输入内容,按回车或点“添加”,任务会出现在列表中
  • 点击 ✓ 按钮,任务会变灰并划线(表示完成)
  • 点 × 可删除任务
  • 底部实时显示总数和完成数

这个例子融合了:数据绑定(v-model)、事件处理(@click)、条件样式(completed 类)、计算属性(completedCount)——全是 Vue 的核心技能!


新手常见问题 & 解决方案

问题现象 可能原因 解决方法
页面一片空白,控制台报错 语法错误,比如忘了 return 打开浏览器开发者工具(F12),看 Console 报错
点击没反应 事件方法没写在 methods 确保所有函数都在 methods 对象中定义
列表不更新 直接修改数组索引(如 arr[0] = x this.$set 或替换整个数组(如 this.arr = [...newArr]
v-model 不生效 绑定的变量不在 data 检查 data() 返回的对象是否包含该变量

我当初最常犯的错:在 data 里写 task: '',却在模板里写 {{ tasks }}(多了一个 s)。这种拼写错误,调试半小时才发现!


下一步怎么学?避坑指南

  1. 先别急着学 Vuex / Pinia(状态管理)
    90% 的小项目根本用不到。先把组件通信(props / emit)搞明白。

  2. 不要一上来就用 TypeScript
    先用纯 JavaScript 写熟 Vue,再考虑加类型。

  3. React 和 Vue 不是敌人
    学完 Vue 后,你会发现 React 的核心思想(组件化、状态驱动)其实很像。那时再学 React 会快很多。

  4. 推荐学习路径

    • 官方文档(Vue 3)→ https://cn.vuejs.org/
    • 做 3 个小项目(计数器、天气查询、博客列表)
    • 学习 Vue Router(页面跳转)
    • 尝试用 Axios 调用 API 获取真实数据

最后的话

我写这篇教程,就是希望你能少走我当年的弯路。编程不是天才的专利,而是一步步试错、调试、再试错的过程。你不需要一开始就懂所有概念,只要能跑通第一行代码,你就已经赢了过去的自己。

现在,打开你的终端,输入 vue create,开始你的第一个 Vue 项目吧!遇到问题?没关系,每个程序员都曾对着红色报错发呆——但最后,他们都笑了。

加油,未来的前端开发者!

评论 0

最热最新
暂无评论
王者_胡勇_领袖Lv.1
0
影响力
0
文章
0
粉丝