零基础也能上手的 Vue.js 入门指南
大家好,我是一个从中文系转行做前端开发的“野生程序员”。当初学 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 比装微信还简单!
你需要准备:
- 一台电脑(Windows/Mac/Linux 都行)
- 一个浏览器(Chrome 或 Edge 最佳)
- 安装 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)。这种拼写错误,调试半小时才发现!
下一步怎么学?避坑指南
先别急着学 Vuex / Pinia(状态管理)
90% 的小项目根本用不到。先把组件通信(props / emit)搞明白。不要一上来就用 TypeScript
先用纯 JavaScript 写熟 Vue,再考虑加类型。React 和 Vue 不是敌人
学完 Vue 后,你会发现 React 的核心思想(组件化、状态驱动)其实很像。那时再学 React 会快很多。推荐学习路径:
- 官方文档(Vue 3)→ https://cn.vuejs.org/
- 做 3 个小项目(计数器、天气查询、博客列表)
- 学习 Vue Router(页面跳转)
- 尝试用 Axios 调用 API 获取真实数据
最后的话
我写这篇教程,就是希望你能少走我当年的弯路。编程不是天才的专利,而是一步步试错、调试、再试错的过程。你不需要一开始就懂所有概念,只要能跑通第一行代码,你就已经赢了过去的自己。
现在,打开你的终端,输入 vue create,开始你的第一个 Vue 项目吧!遇到问题?没关系,每个程序员都曾对着红色报错发呆——但最后,他们都笑了。
加油,未来的前端开发者!

评论 0