零基础入门 Vue.js 开发指南
欢迎来到 Vue.js 的世界!无论你是刚开始学习编程,还是想快速掌握前端开发的新技能,Vue.js 都是一个非常适合初学者的选择。它的设计理念简单、易学且实用,已经成为现代 Web 开发中非常流行的技术之一。
本教程将手把手带你从零开始认识并使用 Vue.js,目标是让你在最短的时间内做出一个自己的小项目。准备好了吗?我们这就出发!
一、Vue.js 是什么?能做什么?

简单地说,Vue.js(简称 Vue)是一个用于构建用户界面的 JavaScript 框架。你可以把它理解为一套“工具包”,帮你更轻松地创建动态网页和交互式应用。
✨ 它能做什么?
- 网页数据绑定:例如输入框中的内容会自动更新页面上的显示。
- 组件化开发:可以像搭积木一样把网页拆分成多个模块。
- 单页应用开发(SPA):如知乎、掘金这类加载一次就完成大部分操作的应用。
- 表单验证、动画效果等常见功能都很容易实现。
总之,如果你希望做一个看起来漂亮又容易维护的网站或系统,Vue 就是个好帮手。
二、开发环境搭建(新手友好版)

要开始写代码,首先得准备好你的工作环境。别担心,这里只用安装几个基础软件,都很简单。
步骤 1:安装 Node.js 和 npm
Node.js 是用来运行 JavaScript 的环境,npm 是 Node 的包管理器,我们之后会用它来下载 Vue 工具。
👉 前往官网 https://nodejs.org,选择 LTS 版本下载安装(Windows/macOS/Linux 通用)。
安装完成后,在命令行里输入:
node -v
npm -v
如果能看到版本号输出,说明已经安装成功。
步骤 2:安装 Vue CLI(Vue 的脚手架工具)
打开命令行工具(如 Windows 的 cmd 或 PowerShell,Mac 的 Terminal),输入以下命令:
npm install -g @vue/cli
安装完成后,检查是否安装成功:
vue --version
你应该看到类似 @vue/cli 5.x.x 的信息。
步骤 3:创建第一个 Vue 项目
现在我们可以创建第一个 Vue 项目啦!
继续在命令行中输入:
vue create hello-vue
然后按上下键选择默认配置(默认预设:Babel + Router + Vuex…),回车确认。
进入项目文件夹:
cd hello-vue
启动项目服务器:
npm run serve
稍等几秒后你会看到一个链接,例如:
App running at:
- Local: http://localhost:8080/
- Network: http://xxx.xxx.xxx.xxx:8080/
在浏览器中打开这个链接,就能看到 Vue 的欢迎页面啦!
🎉 到此为止,你的开发环境就全部准备完毕了!
三、Vue 的核心概念(通俗讲解+示例)

这一部分是我们真正接触 Vue 编程的地方。为了方便理解,我会用尽量简单的语言介绍几个关键词。
1. 数据绑定(Data Binding)
这是 Vue 的核心能力之一,就是让页面内容跟变量同步。
比如你想在页面上显示一个名字,并且这个名字可能会变。
示例代码:
打开你刚刚创建的项目的 App.vue 文件,修改如下:
<template>
<div id="app">
<h1>你好,{{ name }}</h1>
<button @click="changeName">改名</button>
</div>
</template>
<script>
export default {
data() {
return {
name: "小明"
};
},
methods: {
changeName() {
this.name = "小红";
}
}
}
</script>
刷新页面,点击按钮,“小明”就会变成“小红”。
这就是 Vue 的神奇之处——你不需要手动修改 DOM,只需要告诉它“状态变了”,它就会自动更新页面!
2. 组件(Component)
组件就是一个个功能独立的小模块。你可以把整个网页想象成由许多个盒子拼起来的。
比如你可以有一个按钮组件、一个搜索框组件、一个导航栏组件……
创建一个组件:
在 src/components 文件夹中新建一个文件 Hello.vue,内容如下:
<template>
<p>我是 Hello 组件的内容</p>
</template>
<script>
export default {};
</script>
再在 App.vue 中导入并注册它:
<template>
<div id="app">
<Hello />
</div>
</template>
<script>
import Hello from './components/Hello.vue';
export default {
components: {
Hello
}
}
</script>
保存后刷新页面,应该能看到这句话:“我是 Hello 组件的内容”
这就像你在搭积木,每个组件都可以复用、组合,大大提高了开发效率。
3. 事件监听(Event Handling)
有时候我们需要点击按钮、输入文字的时候触发一些动作。这些动作就是“事件”。
前面例子中我们就用了 @click="changeName" 来响应点击事件。
再来一个例子,我们在输入框输入时实时改变名字。
<template>
<div id="app">
<input v-model="name" placeholder="请输入名字">
<p>当前名字是:{{ name }}</p>
</div>
</template>
<script>
export default {
data() {
return {
name: ''
};
}
}
</script>
这里用到的 v-model 是 Vue 的双向绑定指令,也就是说输入框和变量互相影响。
4. 条件渲染(Conditional Rendering)
有时候我们希望根据某些条件决定是否显示某个内容。Vue 提供了 v-if、v-show 等指令。
<template>
<div>
<input type="checkbox" v-model="showText">
<span v-if="showText">你选择了显示我</span>
</div>
</template>
<script>
export default {
data() {
return {
showText: false
};
}
}
</script>
勾选复选框后,文字才会显示出来。
5. 列表渲染(List Rendering)
列表是网页中最常见的结构之一。Vue 使用 v-for 来实现列表循环渲染。
<template>
<ul>
<li v-for="(item, index) in list" :key="index">{{ item }}</li>
</ul>
</template>
<script>
export default {
data() {
return {
list: ['苹果', '香蕉', '梨子']
};
}
}
</script>
你会看到页面上列出三个水果名称。
四、实战项目:做个 Todo List(待办事项清单)
现在我们来做一个小项目练练手吧!我们将制作一个简易的“待办事项清单”。
项目要求:
- 可以输入新的任务
- 显示所有任务
- 点击可删除某条任务
Step 1:创建组件 TodoList.vue
在 src/components 文件夹下创建 TodoList.vue 文件:
<template>
<div class="todo-list">
<input v-model="newItem" @keyup.enter="addItem" placeholder="输入新任务...">
<ul>
<li v-for="(item, index) in items" :key="index">
{{ item }}
<button @click="removeItem(index)">X</button>
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
newItem: '',
items: []
};
},
methods: {
addItem() {
if (this.newItem.trim()) {
this.items.push(this.newItem);
this.newItem = '';
}
},
removeItem(index) {
this.items.splice(index, 1);
}
}
};
</script>
<style scoped>
.todo-list {
width: 300px;
margin: auto;
}
input {
width: 100%;
padding: 10px;
margin-bottom: 10px;
}
ul {
list-style-type: none;
padding-left: 0;
}
li {
border: 1px solid #ddd;
padding: 10px;
margin-bottom: 5px;
display: flex;
justify-content: space-between;
}
</style>
Step 2:在 App.vue 中使用该组件
修改 App.vue 文件:
<template>
<div id="app">
<h1>我的待办清单</h1>
<TodoList />
</div>
</template>
<script>
import TodoList from './components/TodoList.vue';
export default {
components: {
TodoList
}
}
</script>
保存后刷新页面,试试添加几个任务看看!
五、新手常见问题解答
Q1:为什么变量要用 this. 才能访问?
A:因为 Vue 在 data() 中定义的数据需要通过 this 才能在其他地方使用。这是 Vue 内部封装好的机制。
Q2:v-model 和 .sync 有什么区别?
A:v-model 是默认的双向绑定方式,而 .sync 用于父子组件之间的同步数据传递。
Q3:组件名为什么要大写?
A:这是 Vue 的约定,组件名必须首字母大写(如 TodoList),否则可能报错。
Q4:代码改了但页面不更新?
A:可能是你漏掉了 return 或者没有在 data 函数中返回变量。确保每个变量都在 data() 返回的对象里。
六、下一步学习建议
你现在已经可以写出一个有基本功能的 Vue 页面了,接下来建议沿着这几个方向深入学习:
🧠 学习路线图
| 学习阶段 | 推荐学习内容 |
|---|---|
| 基础阶段 | Vue 生命周期、过渡动画、表单处理 |
| 进阶阶段 | Vue Router(路由)、Vuex(状态管理) |
| 实战阶段 | axios 请求数据、Mock 数据、部署上线 |
| 拓展阶段 | TypeScript、Composition API(Vue 3) |
🔧 推荐资源:
- 官方文档:https://v3.cn.vuejs.org
- B站视频教学(如“黑马程序员Vue课程”)
- GitHub 上找小型开源项目练手
结语:坚持就是胜利!
Vue 并不难,只要你跟着一步步动手做,很快就能掌握它。记住一句话:“不动手就不会懂”,多写、多改、多尝试,你会发现越来越熟练,越来越有信心!
祝你在 Vue 的旅程中顺利快乐,加油!🚀

评论 0