零基础也能学会的Vue.js入门实战指南

云上便利店
2025-12-25 17:18
阅读 3447

大家好!我是一个从中文系转行做前端开发的“文科生程序员”。三年前,我对代码一窍不通,连HTML是什么都不知道。如今,我已经在一家互联网公司担任前端工程师,还经常帮运营同事写小工具提升效率。今天写这篇教程,就是想告诉所有零基础的朋友:你也可以做到!

当初我学前端时,最头疼的就是技术选型——React、Vue、Angular到底选哪个?后来发现,对新手来说,Vue.js 是最友好的选择。它语法简洁、文档清晰、上手快,特别适合想快速做出东西、验证想法的人——比如运营同学想做个活动页面,或者求职者想快速做出作品集。

这篇文章,我会手把手带你从零开始搭建 Vue 项目,用最通俗的语言讲清楚核心概念,并最终完成一个“待办事项”小应用。全程无需任何前置知识!


为什么选 Vue?前端三大框架对比

在动手之前,先搞清楚 Vue 到底是什么,以及它和其他主流前端框架有什么区别。

框架 学习曲线 文档友好度 适合人群 社区活跃度
Vue.js ⭐⭐(平缓) ⭐⭐⭐⭐⭐(中文文档极佳) 新手、全栈、运营转开发 高(国内尤甚)
React ⭐⭐⭐⭐(陡峭) ⭐⭐⭐⭐(英文为主) 有 JS 基础者、大厂偏好 极高
Angular ⭐⭐⭐⭐⭐(非常陡) ⭐⭐⭐(复杂) 企业级项目、TypeScript 爱好者 中等

💡 我当初学的时候:花了两周看 React 教程,还是云里雾里;换成 Vue,三天就做出了第一个可交互页面!

Vue 的优势:

  • 模板语法像 HTML:<div>{{ message }}</div> 这种写法,一眼就能看懂。
  • 响应式数据:数据变了,页面自动更新,不用手动操作 DOM。
  • 单文件组件(.vue):把 HTML、CSS、JS 写在一个文件里,结构清晰。
  • 国内生态好:Element Plus、Ant Design Vue 等 UI 库丰富,GitHub 上中文项目多。

如果你目标是:

  • 快速做出一个能用的网页
  • 给简历加个“会前端”的亮点
  • 帮运营团队自动化一些重复工作

那 Vue 就是你最好的起点!


第一步:搭建开发环境(5分钟搞定)

别被“环境搭建”吓到!现在工具很智能,照着做就行。

1. 安装 Node.js

Vue 需要 Node.js 来运行开发服务器和打包工具。

  • 访问 https://nodejs.org
  • 下载 LTS 版本(长期支持版,更稳定)
  • 安装时一路“下一步”即可

安装完成后,打开终端(Windows 用 PowerShell 或 CMD,Mac 用 Terminal),输入:

node -v
npm -v

如果显示版本号(如 v18.17.0),说明安装成功!

2. 创建 Vue 项目

我们用官方脚手架 Vite(比老工具 Vue CLI 更快):

npm create vue@latest my-vue-app

按提示操作:

  • 项目名:直接回车用默认 my-vue-app
  • 是否添加 TypeScript?→ No
  • 是否添加 JSX 支持?→ No
  • 是否添加 Vue Router?→ No(后面再学)
  • 是否添加 Pinia?→ No
  • 是否添加 Vitest?→ No
  • 是否添加 Cypress?→ No
  • 是否添加 ESLint?→ Yes(代码规范)
  • 是否添加 Prettier?→ Yes(自动格式化)

然后进入项目并启动:

cd my-vue-app
npm install
npm run dev

看到终端输出类似:

Local:   http://localhost:5173/

打开浏览器访问这个地址,就能看到 Vue 的欢迎页面了!🎉

✅ 避坑指南:如果卡在 npm install,可能是网络问题。可以尝试换源:

npm config set registry https://registry.npmmirror.com

第二步:理解 Vue 的三个核心概念

别急着写代码!先搞懂这三个词,你就入门了:

1. 响应式数据(Reactivity)

在 Vue 中,你定义的数据会“自动追踪变化”。比如:

<script setup>
let count = $ref(0) // Vue 3.4+ 的新语法,超简单!
</script>

<template>
  <div>你点了 {{ count }} 次</div>
  <button @click="count++">点我</button>
</template>
  • $ref() 声明一个响应式变量
  • {{ count }} 在模板中显示数据
  • @click 是事件绑定,点击时 count 自增

💡 关键点:你不用手动写 document.getElementById().innerHTML = ... 这种繁琐代码!

2. 模板语法(Template Syntax)

Vue 的模板就是增强版 HTML:

<template>
  <!-- 条件渲染 -->
  <div v-if="isVisible">我现在可见</div>
  
  <!-- 循环渲染 -->
  <ul>
    <li v-for="item in list" :key="item.id">
      {{ item.name }}
    </li>
  </ul>
  
  <!-- 双向绑定(表单神器) -->
  <input v-model="message" />
  <p>你输入了:{{ message }}</p>
</template>
  • v-if:条件判断
  • v-for:循环列表
  • v-model:表单双向绑定(输入框内容 ↔ 数据自动同步)

3. 组件化(Components)

把页面拆成小积木,比如 <Header />、<TodoList />。

新建 src/components/TodoItem.vue:

<template>
  <li>{{ task }}</li>
</template>

<script setup>
defineProps(['task'])
</script>

在 App.vue 中使用:

<template>
  <TodoItem v-for="t in tasks" :key="t" :task="t" />
</template>

<script setup>
import TodoItem from './components/TodoItem.vue'
const tasks = ['买牛奶', '写代码', '学 Vue']
</script>

✅ 新手提示:.vue 文件包含三部分:

  • <template>:HTML 结构
  • <script setup>:JavaScript 逻辑
  • <style>:CSS 样式(可选)

第三步:实战!做一个待办事项(Todo List)

现在,我们把这些知识串起来,做一个实用小工具。

步骤 1:清理 App.vue

删除默认内容,只保留:

<template>
  <div class="container">
    <h1>我的待办清单</h1>
    <!-- 待办输入框 -->
    <!-- 待办列表 -->
  </div>
</template>

<script setup>
// 所有逻辑写在这里
</script>

<style>
.container {
  max-width: 600px;
  margin: 50px auto;
  padding: 20px;
}
</style>

步骤 2:添加输入框和列表

<template>
  <div class="container">
    <h1>我的待办清单</h1>
    
    <!-- 输入新任务 -->
    <input 
      v-model="newTask" 
      @keyup.enter="addTask"
      placeholder="输入任务后按回车"
      class="input"
    />
    
    <!-- 任务列表 -->
    <ul class="task-list">
      <li 
        v-for="(task, index) in tasks" 
        :key="index"
        class="task-item"
      >
        {{ task }}
        <button @click="removeTask(index)">×</button>
      </li>
    </ul>
  </div>
</template>

<script setup>
import { ref } from 'vue'

// 响应式数据
const newTask = ref('')
const tasks = ref([])

// 添加任务
function addTask() {
  if (newTask.value.trim()) {
    tasks.value.push(newTask.value)
    newTask.value = '' // 清空输入框
  }
}

// 删除任务
function removeTask(index) {
  tasks.value.splice(index, 1)
}
</script>

<style scoped>
/* 省略具体样式,重点在逻辑 */
.input {
  width: 100%;
  padding: 10px;
  font-size: 16px;
  margin-bottom: 20px;
}
.task-item {
  display: flex;
  justify-content: space-between;
  padding: 10px;
  border-bottom: 1px solid #eee;
}
</style>

步骤 3:测试功能

  • 在输入框输入文字,按回车 → 任务添加到列表
  • 点击 × 按钮 → 对应任务删除

💡 我当初学的时候:第一次看到自己写的代码能实时响应,激动得差点跳起来!


新手常见问题解答

Q1:ref 和 $ref 有什么区别?

  • Vue 3.4+ 推出了 Reactivity Transform(响应式语法糖),用 $ref() 更简洁。
  • 如果你用的是旧版 Vue(或公司项目未升级),请用 const count = ref(0),并在模板中用 .value 访问(但在模板中不用写 .value)。

Q2:为什么删任务要用 splice 而不是 delete?

因为 Vue 的响应式系统需要“感知”数组变化。splice 是 Vue 能检测到的数组方法,而直接 delete tasks[index] 不会触发更新。

Q3:如何把项目放到 GitHub?

  1. 在 GitHub 新建仓库(如 my-vue-todo)
  2. 本地执行:
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/你的用户名/my-vue-todo.git
git push -u origin main

✅ 求职加分项:把作品放到 GitHub,面试时直接展示!

Q4:学完这个能找工作吗?

单靠一个 Todo List 当然不够,但这是重要的第一步!你可以:

  • 在此基础上增加“标记完成”、“本地存储”功能
  • 用 GitHub Pages 免费部署(npm run build 后上传 dist 文件夹)
  • 写进简历:“独立开发 Vue 待办应用,实现增删改查与持久化”

下一步学习建议

恭喜你完成了第一个 Vue 应用!接下来该往哪走?

短期目标(1-2周)

  • 学习 Vue Router:实现多页面跳转(比如“全部任务”、“已完成”)
  • 学习 Pinia:状态管理(多个组件共享数据)
  • 接入 真实 API:用 fetch 获取远程数据

中期目标(1个月)

  • 用 Element Plus 或 Naive UI 快速搭建后台管理系统
  • 学习 组件通信(props / emit / provide/inject)
  • 尝试 TypeScript + Vue(大厂越来越看重)

长期建议

  • 不要只学 Vue:HTML/CSS/JavaScript 基础必须扎实
  • 多造轮子:模仿微信聊天界面、电商商品列表等
  • 参与开源:在 GitHub 上找 Vue 项目提 PR(哪怕只是改错别字!)

🌟 最后鼓励:我当初投简历时,作品集里就有一个 Vue 做的“运营活动配置工具”,虽然简单,但让面试官眼前一亮——因为它解决了实际问题!技术的价值,在于创造。


结语:你的前端之旅,从此刻开始

Vue.js 不是魔法,它只是一个工具。真正厉害的,是那个愿意从零开始、亲手敲下第一行代码的你。

无论你是想转行求职,还是帮运营团队提效,或是纯粹好奇技术世界——今天你写的这个待办应用,就是改变的起点。

记住:每个大神,都曾是个连 console.log 都打错的新手。你,也可以。

快去打开你的编辑器,写下 npm create vue@latest 吧!我在前端的世界等你 👋

评论 0

最热最新
暂无评论
云上便利店Lv.1
0
影响力
0
文章
0
粉丝