零基础入门 Vue.js 开发指南
大家好,我是一名开源项目维护者,也是一名前端讲师。这些年,我写过不少技术文档,也带过很多零基础的同学入门前端开发。今天写这篇《零基础入门 Vue.js 开发指南》,是因为我经常看到初学者在面对框架时一脸茫然——不知道从哪开始、该装什么工具、代码怎么运行……我当初学的时候,也踩过类似的坑。所以,我想用最简单、最实践的方式,带你从“完全不会”走到“能写出第一个 Vue 应用”。
本文会手把手教你搭建环境、理解核心概念,并完成一个迷你实战项目。不需要任何前端经验,只要你会用电脑、会打字,就能跟着做下去。文末还会附上常见问题和学习建议,帮你少走弯路。
一、Vue.js 是什么?它能做什么?
简单说,Vue.js(简称 Vue)是一个用于构建用户界面的 JavaScript 框架。你可以把它想象成“搭积木”的工具——用它,你能快速组合出动态、交互式的网页。
比如:
- 点击按钮,文字会变色
- 输入框里打字,下面实时显示你输入的内容
- 从服务器加载数据,自动渲染成列表
这些功能如果用原生 JavaScript 写,代码会很冗长;而用 Vue,几行代码就能搞定。
📌 小知识:Vue 和 React、Angular 并称前端三大主流框架。它的特点是“上手快、文档好、生态全”,特别适合初学者。
你可能会问:“这和爬虫有什么关系?”其实,Vue 本身不是用来写爬虫的——爬虫通常是后端或脚本工具(比如 Python 的 requests + BeautifulSoup)。但现代网站很多是用 Vue 构建的(比如一些电商、社交平台),如果你想分析这类网站的数据,就需要先理解 Vue 渲染的原理。不过别担心,本文重点是教你开发 Vue 应用,而不是抓取它。
至于书籍,虽然网上教程很多,但我依然推荐新手搭配一本系统性的书,比如《Vue.js 设计与实现》或官方文档配套的中文指南。书籍能帮你建立完整知识体系,避免“碎片化学习”。
二、环境准备:5 分钟搭好开发环境
要写 Vue 代码,你需要三样东西:
- 代码编辑器:推荐 Visual Studio Code(简称 VS Code),免费、轻量、插件多。
- Node.js:Vue 项目依赖它来运行和打包。去 nodejs.org 下载 LTS 版(长期支持版),安装时一路“下一步”即可。
- Vue 官方脚手架(Vite):这是创建 Vue 项目的最快方式。
安装步骤(按顺序执行)
# 1. 打开终端(Windows 用 PowerShell 或 CMD,Mac 用 Terminal)
# 2. 检查 Node 是否安装成功
node -v # 应输出 v18.x 或更高
npm -v # 应输出 8.x 或更高
# 3. 使用 Vite 创建 Vue 项目(无需全局安装)
npm create vue@latest my-vue-app
# 4. 按提示操作(全部选 No,除非你明确需要 TypeScript 等)
✔ Project name: … my-vue-app
✔ Add TypeScript? … No
✔ Add JSX Support? … No
✔ Add Vue Router for Single Page Application development? … No
✔ Add Pinia for state management? … No
✔ Add Vitest for Unit testing? … No
✔ Add Cypress for both E2E and Component testing? … No
✔ Add ESLint for code quality? … No
✔ Add Prettier for code formatting? … No
# 5. 进入项目目录并启动
cd my-vue-app
npm install
npm run dev
成功后,终端会显示本地访问地址(通常是 http://localhost:5173)。打开浏览器,你会看到 Vue 的欢迎页面!
💡 避坑指南:如果卡在
npm install,可能是网络问题。可以尝试换源:npm config set registry https://registry.npmmirror.com
三、核心概念:用生活例子理解 Vue
Vue 的核心思想就两个字:响应式。意思是——数据变了,页面自动更新。
1. 模板语法(Template)
你在 HTML 里用 {{ }} 包裹变量,Vue 会自动替换成真实值。
<!-- 示例:App.vue -->
<template>
<div>
<h1>Hello, {{ name }}!</h1>
</div>
</template>
<script>
export default {
data() {
return {
name: "小明"
}
}
}
</script>
当你把 name 改成 "小红",页面上的文字立刻变成 “Hello, 小红!” —— 这就是响应式。
2. 指令(Directives)
指令是以 v- 开头的特殊属性,用来“指挥” DOM 行为。
| 指令 | 作用 | 示例 |
|---|---|---|
v-if |
条件渲染 | <p v-if="show">显示我</p> |
v-for |
循环列表 | <li v-for="item in list" :key="item.id">{{ item.name }}</li> |
v-model |
双向绑定 | <input v-model="message"> |
3. 组件(Component)
组件就像乐高积木——你可以把一个功能(比如导航栏、商品卡片)封装成独立模块,重复使用。
<!-- Button.vue -->
<template>
<button class="btn">{{ label }}</button>
</template>
<script>
export default {
props: ['label'] // 接收外部传入的参数
}
</script>
<style scoped>
.btn {
padding: 8px 16px;
background: #42b883;
color: white;
border: none;
border-radius: 4px;
}
</style>
在 App.vue 中使用:
<template>
<div>
<MyButton label="点我试试" />
</div>
</template>
<script>
import MyButton from './components/Button.vue'
export default {
components: { MyButton }
}
</script>
✅ 新手提示:
<style scoped>表示样式只作用于当前组件,不会污染全局。
四、实战项目:做一个“读书记录”小应用
我们来做一个实用的小工具:记录你读过的书籍。功能包括:
- 添加书名
- 显示书籍列表
- 删除某本书
步骤 1:清理默认代码
打开 src/App.vue,替换为以下内容:
<template>
<div id="app">
<h1>我的读书清单</h1>
<!-- 这里写我们的功能 -->
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
max-width: 600px;
margin: 40px auto;
padding: 20px;
}
</style>
步骤 2:添加数据和方法
<template>
<div id="app">
<h1>我的读书清单</h1>
<!-- 输入框 + 按钮 -->
<div>
<input v-model="newBook" @keyup.enter="addBook" placeholder="输入书名" />
<button @click="addBook">添加</button>
</div>
<!-- 书籍列表 -->
<ul>
<li v-for="(book, index) in books" :key="index">
{{ book }}
<button @click="removeBook(index)">删除</button>
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
newBook: '',
books: ['《Vue.js 实战》', '《JavaScript 高级程序设计》']
}
},
methods: {
addBook() {
if (this.newBook.trim()) {
this.books.push(this.newBook)
this.newBook = '' // 清空输入框
}
},
removeBook(index) {
this.books.splice(index, 1)
}
}
}
</script>
步骤 3:解释关键代码
v-model="newBook":输入框内容和newBook数据双向绑定@click="addBook":点击按钮触发addBook方法@keyup.enter:按回车键也触发添加(提升体验)v-for="(book, index) in books":遍历数组,index是序号:key="index":Vue 需要唯一 key 来高效更新列表
现在保存文件,回到浏览器——你的读书清单已经跑起来了!试着添加《爬虫入门指南》,看看效果。
🔍 为什么不用真实 ID 做 key?
初学者常用index作 key,但在列表可排序/删除时可能出 bug。理想情况应使用唯一 ID(如数据库主键)。但本例数据简单,用 index 足够。
五、新手常见问题解答
Q1:为什么改了代码,浏览器没更新?
- 原因:可能保存没生效,或终端报错。
- 解决:检查终端是否有红色错误;确保文件已保存(VS Code 右上角有“已保存”提示)。
Q2:<script setup> 是什么?和我写的不一样!
- Vue 3 推出了新语法
<script setup>,更简洁。但作为新手,先掌握 Options API(即data()、methods)更容易理解逻辑结构。等熟悉后再学 Composition API。
Q3:能用 Vue 写爬虫吗?
- 不能直接写。Vue 是前端框架,运行在浏览器。爬虫需在服务器运行(如用 Node.js + Puppeteer 模拟浏览器)。但如果你要爬取 Vue 网站,需注意:很多数据是 JS 动态加载的,不能只看 HTML 源码。
Q4:一定要用 Vite 吗?可以用 CDN 直接引入吗?
- 可以!对于超简单 demo,你可以在 HTML 里这样写:
但正式项目必须用 Vite/Vue CLI,否则无法使用单文件组件(<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <div id="app">{{ message }}</div> <script> const { createApp } = Vue createApp({ data() { return { message: 'Hello Vue!' } } }).mount('#app') </script>.vue文件)、热更新等高级功能。
六、下一步学习建议
恭喜你完成了第一个 Vue 应用!接下来,我建议你:
1. 深入核心概念
- 学习 计算属性(computed) 和 侦听器(watch)
- 理解 生命周期钩子(如
mounted) - 掌握 组件通信(props / emits)
2. 推荐学习资源
| 类型 | 推荐内容 |
|---|---|
| 官方文档 | Vue 3 中文文档(必读!) |
| 书籍 | 《Vue.js 设计与实现》(霍春阳著)——深入原理 |
| 视频 | Bilibili 搜索 “Vue 3 入门到实战”(选播放量高、更新于 2023 后的) |
3. 动手实践项目
- 待办事项(Todo List)
- 天气查询应用(调用公开 API)
- 仿写一个豆瓣电影页面
🌟 最后的话:我当初学 Vue 时,也觉得“响应式”“组件”这些词很玄乎。但只要你动手写代码、改代码、看效果,概念自然就懂了。不要怕犯错——每个 bug 都是你进步的阶梯。
编程不是记住语法,而是解决问题的能力。现在,你已经有了第一块基石。继续敲下去,世界会为你打开。
Happy Coding! 🚀

评论 0