零基础入门 Vue.js 开发指南

FastAPI跑起来
2025-12-15 19:54
阅读 222

大家好,我是一名开源项目维护者,也是一名前端讲师。这些年,我写过不少技术文档,也带过很多零基础的同学入门前端开发。今天写这篇《零基础入门 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 代码,你需要三样东西:

  1. 代码编辑器:推荐 Visual Studio Code(简称 VS Code),免费、轻量、插件多。
  2. Node.js:Vue 项目依赖它来运行和打包。去 nodejs.org 下载 LTS 版(长期支持版),安装时一路“下一步”即可。
  3. 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 里这样写:
    <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>
    
    正式项目必须用 Vite/Vue CLI,否则无法使用单文件组件(.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

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝