零基础入门Vue.js开发指南
一、开篇:Vue.js 是什么?它能做什么?

如果你是刚接触前端开发的新手,可能会听说 Vue.js 这个名字。那它到底是什么呢?
Vue.js(简称 Vue)是一个用于构建用户界面的 JavaScript 框架。通俗一点讲,它就像是一个帮你快速搭建网页“交互功能”的工具包。你可能已经知道 HTML 和 CSS 是用来制作网页结构和样式的,而 Vue 则帮助你让这些网页“活起来”,比如:
- 实现点击按钮弹出内容
- 让输入框的内容实时反映在页面其他地方
- 在不刷新页面的情况下加载数据
- 构建单页应用(SPA)
Vue 的设计目标就是简单、易用、高效。尤其适合零基础或者对前端框架还不太熟悉的朋友。
二、环境准备:开始之前,我们需要安装什么?

1. 基础要求:HTML、CSS、JavaScript 基础知识
在学习 Vue 之前,建议你掌握以下基础知识:
- HTML:网页的基本结构
- CSS:网页的样式美化
- JavaScript:网页的交互逻辑
如果这些还不熟也没关系,可以在学习 Vue 的过程中逐步补上。
2. 开发工具推荐
为了更方便地写代码,我们推荐使用以下工具:
| 工具名称 | 功能说明 |
|---|---|
| VS Code | 免费、轻量级、插件丰富,适合前端开发 |
| Chrome 浏览器 | 调试页面,查看控制台输出 |
| Vue Devtools | 浏览器插件,专门调试 Vue 应用 |
3. 创建第一个 Vue 项目的方式
对于初学者来说,最简单的办法是使用 CDN 引入 Vue,不需要安装任何复杂的东西。
步骤 1:创建一个 index.html 文件
打开你的编辑器(如 VS Code),新建一个文件叫 index.html,然后输入以下内容:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<title>我的第一个 Vue 页面</title>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>
<body>
<div id="app">
{{ message }}
</div>
<script>
const { createApp } = Vue;
createApp({
data() {
return {
message: 'Hello Vue!'
};
}
}).mount('#app');
</script>
</body>
</html>
步骤 2:用浏览器打开这个文件
右键该 HTML 文件 → 使用 Chrome 打开。你会看到页面上显示了:
Hello Vue!
恭喜!你已经运行起了第一个 Vue 程序!
三、核心概念讲解(配示例)

Vue 的核心思想在于“响应式”和“组件化”。下面我们会一一解释这些概念,并配合代码示例。
1. 数据绑定(Data Binding)
Vue 最基本的功能之一是“数据驱动视图”,也就是说,数据变化时,页面自动更新。
示例:点击按钮改变文字
<div id="app">
<p>{{ message }}</p>
<button @click="changeMessage">点击我</button>
</div>
<script>
const { createApp } = Vue;
createApp({
data() {
return {
message: '初始内容'
};
},
methods: {
changeMessage() {
this.message = '内容改变了!';
}
}
}).mount('#app');
</script>
在这个例子中:
{{ message }}表示将变量message显示到页面上。@click="changeMessage"表示点击按钮后调用changeMessage方法。this.message = ...修改了数据后,页面上的文字会自动更新。
✅ 新手提示:不要忘记
this关键字来访问data中的数据!
2. 条件渲染(v-if / v-show)
有时候我们想根据某个条件决定是否显示某部分内容。
示例:显示或隐藏一段文字
<div id="app">
<input type="checkbox" v-model="showText" /> 是否显示文字?
<p v-if="showText">这段文字只在勾选时出现。</p>
</div>
<script>
const { createApp } = Vue;
createApp({
data() {
return {
showText: false
};
}
}).mount('#app');
</script>
v-model="showText"绑定的是复选框的状态与数据。v-if="showText"控制<p>标签是否显示。
💡 注意:v-if 是“真正删除/插入 DOM”,而 v-show 是通过 CSS 的 display: none 控制显示,性能表现略有不同。
3. 列表循环渲染(v-for)
很多时候我们需要展示一组数据,比如商品列表、评论、朋友名单等。
示例:显示一个水果列表
<div id="app">
<ul>
<li v-for="fruit in fruits" :key="fruit">
{{ fruit }}
</li>
</ul>
</div>
<script>
const { createApp } = Vue;
createApp({
data() {
return {
fruits: ['苹果', '香蕉', '葡萄', '橙子']
};
}
}).mount('#app');
</script>
v-for="fruit in fruits"表示循环数组中的每个元素。:key="fruit"是 Vue 推荐为每个元素添加一个唯一标识(这里假设水果名不会重复)。
4. 监听事件(v-on 或简写 @)
除了前面介绍的 @click,我们还可以监听键盘、鼠标、表单等各类事件。
示例:按下回车键提交输入
<div id="app">
<input v-model="text" @keyup.enter="submitText" placeholder="按回车提交" />
<p>你输入的内容:{{ text }}</p>
</div>
<script>
const { createApp } = Vue;
createApp({
data() {
return {
text: ''
};
},
methods: {
submitText() {
alert('你输入了:' + this.text);
}
}
}).mount('#app');
</script>
5. 组件化开发(Component)
随着项目复杂度提升,我们不再把所有东西都写在一个页面里。Vue 支持将功能模块拆分成一个个组件,就像积木一样组合起来。
示例:创建一个可复用的按钮组件
<div id="app">
<my-button label="点我试试"></my-button>
</div>
<script>
const { createApp, defineComponent } = Vue;
// 定义组件
const MyButton = defineComponent({
props: ['label'],
template: `
<button @click="onClick">{{ label }}</button>
`,
methods: {
onClick() {
alert(this.label + ' 被点击了!');
}
}
});
createApp({
components: {
MyButton
}
}).mount('#app');
</script>
在这个例子中:
- 我们定义了一个名为
MyButton的组件。 - 组件接收一个属性
label,用来设置按钮上的文字。 - 组件内部封装了按钮行为,实现复用。
四、实战项目:做一个 todo 待办事项应用

现在我们来动手做个实际的小项目吧 —— 待办事项清单(Todo List)
功能需求:
- 添加新任务
- 显示任务列表
- 删除任务
- 标记任务为已完成
步骤一:基本结构
<div id="app">
<h1>我的待办事项</h1>
<input v-model="newTask" @keyup.enter="addTask" placeholder="请输入任务内容" />
<ul>
<li v-for="(task, index) in tasks" :key="index">
<span :class="{ completed: task.done }" @click="toggleDone(task)">
{{ task.text }}
</span>
<button @click="removeTask(index)">删除</button>
</li>
</ul>
</div>
步骤二:JavaScript 逻辑
const { createApp } = Vue;
createApp({
data() {
return {
newTask: '',
tasks: []
};
},
methods: {
addTask() {
if (this.newTask.trim()) {
this.tasks.push({ text: this.newTask, done: false });
this.newTask = ''; // 清空输入框
}
},
removeTask(index) {
this.tasks.splice(index, 1); // 删除指定索引的任务
},
toggleDone(task) {
task.done = !task.done; // 切换完成状态
}
}
}).mount('#app');
步骤三:增加样式
你可以在页面中加上如下 CSS 让“已完成”任务划掉:
.completed {
text-decoration: line-through;
color: gray;
}
现在,你可以运行这个页面,试着添加、删除、标记任务试试吧!
五、常见问题答疑

Q1: Vue 是不是必须和 jQuery 一起使用?
A:不是的。Vue 可以完全替代 jQuery,甚至更强大。它们都是操作 DOM 的工具,但 Vue 更现代化、响应式、更适合现代前端开发。
Q2: 报错说 “Uncaught ReferenceError: Vue is not defined” 怎么办?
A:这通常是因为没有正确引入 Vue 脚本文件。请检查:
<script>标签的src地址是否正确- 是否拼写错误,例如
vue写成vau - 是否放在了
Vue实际使用之前
Q3: 为什么修改了数据,页面没更新?
A:这可能是你在非响应式上下文中修改了数据。确保你是在 data() 返回的对象中声明的变量,并且用 this.xxx 来修改。
Q4: 什么时候应该用 v-if 和 v-show?
A:如果你希望频繁切换,用 v-show;如果只是偶尔切换一次或很少显示,可以用 v-if。因为 v-if 是真删 DOM,开销更大。
六、下一步的学习建议
你现在已经完成了 Vue.js 的入门学习!接下来可以朝着以下几个方向进阶:
1. 学习 Vue Router
Vue Router 是 Vue 官方的路由管理器。可以让你轻松实现多个页面之间的跳转,比如“首页”、“关于我们”等。
2. 使用 Vuex / Pinia 进行状态管理
当你的项目变得复杂,多个组件之间需要共享数据时,需要用到状态管理工具。Pinia 是目前推荐的选择。
3. 构建真实项目
你可以尝试开发一些更复杂的项目,比如:
- 天气查询小程序
- 个人博客网站
- 商品购物车系统
4. 尝试 Vue 3 的 Composition API
Vue 3 新增了 Composition API,相比 Options API(我们现在学的是这种)更具灵活性和可维护性。
5. 学习工程化工具(可选)
当你打算发布真正的项目时,就需要了解打包工具如 Vite、Webpack 等,以及如何组织大型项目结构。
七、结语
Vue.js 并不像很多人想象得那么难。只要你有基础的 HTML/CSS/JS 知识,通过动手实践就能快速上手。本教程带你从零搭建环境、理解关键概念,并做了一个小项目练手。
继续加油吧!前端的世界非常精彩,Vue 只是个开始 😊
如果你有任何问题,欢迎留言提问!

评论 0