一个文科生的Vue.js实战入门:从零做出你的第一个应用
大家好,我是一个靠自学转行成功的前端工程师。大学读的是中文系,当初连“变量”是什么都不知道,现在却天天和代码打交道。今天写这篇教程,是因为我清楚记得自己第一次接触 Vue.js 时的迷茫——文档里全是术语,教程动不动就讲“响应式原理”,但其实初学者最需要的,是能跑起来、看得懂、改得动的小项目。
所以,别担心你没学过编程,也别怕 JavaScript 听起来高深。这篇文章会带你用最简单的方式,亲手做出一个 Vue.js 应用,并顺便搞懂它在整个前端生态中的位置。
为什么选 Vue?它和 React 有啥区别?
在前端三大框架(Vue、React、Angular)中,Vue 以“上手快、文档友好”著称,特别适合零基础的朋友。而 React 虽然更流行(尤其在大厂),但它的 JSX 语法和函数式思维对新手不太友好。
| 特性 | Vue.js | React |
|---|---|---|
| 学习曲线 | 平缓,模板直观 | 陡峭,需理解 JSX 和状态管理 |
| 语法风格 | HTML + JS 混合,像写网页 | JS 为主,用 JS 写 HTML(JSX) |
| 官方工具 | Vue CLI / Vite(官方推荐) | Create React App(社区维护) |
| 适合人群 | 初学者、快速原型开发 | 中大型项目、追求灵活性 |
我当初学的时候,先试了 React,结果被
useState和useEffect绕晕了;转学 Vue 后,三天就做出了一个待办事项列表,信心一下就回来了!
第一步:搭建你的开发环境
别被“环境搭建”吓到,现在只需要三步:
安装 Node.js
去 https://nodejs.org 下载 LTS 版本(长期支持版),安装时一路点“下一步”即可。打开终端(命令行)
- Windows:按
Win + R,输入cmd回车 - Mac:打开“终端”应用
- Windows:按
创建 Vue 项目
在终端中依次输入以下命令:
npm create vue@latest my-vue-app
cd my-vue-app
npm install
npm run dev
这些命令的意思是:用官方脚手架创建一个叫
my-vue-app的项目,进入文件夹,安装依赖,然后启动开发服务器。
如果一切顺利,你会看到一行绿色文字,比如 Local: http://localhost:5173/。复制这个链接到浏览器,就能看到 Vue 的欢迎页面了!
核心概念:Vue 是怎么工作的?
Vue 的核心思想就两个字:响应式。简单说,就是“数据变了,页面自动跟着变”。
举个例子:你有一个计数器,点一下按钮,数字加一。在传统网页中,你需要手动操作 DOM(比如 document.getElementById('count').innerText = ...),很麻烦。但在 Vue 中,你只需要改数据,页面自动更新。
关键三要素:
- 模板(Template):写在
<template>里的 HTML,可以嵌入变量。 - 逻辑(Script):写在
<script setup>里的 JavaScript,定义数据和方法。 - 样式(Style):写在
<style>里的 CSS,美化页面。
来看一个最简单的组件:
<template>
<div>
<p>你点了 {{ count }} 次</p>
<button @click="count++">点我</button>
</div>
</template>
<script setup>
import { ref } from 'vue'
const count = ref(0)
</script>
{{ count }}:这是插值语法,把变量显示在页面上。@click:这是 Vue 的事件绑定,点击时执行count++。ref(0):这是 Vue 3 的响应式 API,把普通数字变成“会自动更新”的变量。
新手常犯的错误:直接写
let count = 0,然后count++—— 这样页面不会更新!必须用ref包裹,Vue 才能“监听”到变化。
实战项目:做一个简易天气卡片
我们来做一个静态的天气展示组件,虽不能联网,但能让你掌握 Vue 的基本结构。
步骤 1:修改 App.vue
打开 src/App.vue,替换成以下内容:
<template>
<div class="weather-card">
<h2>{{ city }}</h2>
<p>当前温度:{{ temp }}°C</p>
<p>天气:{{ condition }}</p>
<button @click="toggleUnit">切换为华氏度</button>
</div>
</template>
<script setup>
import { ref } from 'vue'
const city = ref('北京')
const temp = ref(25)
const condition = ref('晴')
function toggleUnit() {
if (temp.value < 100) {
// 当前是摄氏度,转华氏
temp.value = Math.round(temp.value * 9/5 + 32)
} else {
// 当前是华氏度,转回摄氏
temp.value = Math.round((temp.value - 32) * 5/9)
}
}
</script>
<style scoped>
.weather-card {
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
max-width: 300px;
margin: 50px auto;
text-align: center;
}
</style>
步骤 2:运行看看效果
保存文件后,浏览器会自动刷新。你应该能看到一个带按钮的卡片,点击“切换为华氏度”后,温度数字会变化。
知识点拆解:
ref:让数据具备响应式能力.value:在 JS 中读取或修改ref变量时,必须加.value@click:绑定点击事件scoped:<style scoped>表示这些样式只作用于当前组件,不会污染全局
新手常见问题解答
Q1:为什么我的数据变了,页面没更新?
很可能你用了普通变量(如 let x = 1),而不是 ref 或 reactive。记住:所有要显示在页面上的数据,都必须是响应式的。
Q2:<script setup> 是什么?和普通 <script> 有啥区别?
<script setup> 是 Vue 3 推出的新语法,写起来更简洁,不需要 export default。对新手来说,直接用它就行,不用纠结老写法。
Q3:Vue 和 JavaScript 到底什么关系?
Vue 是基于 JavaScript 的框架。你可以把 JavaScript 看作“语言”,Vue 是“工具包”。就像你会中文(JS),Vue 是一本教你如何写小说的指南(框架)。
下一步学什么?我的学习路线建议
巩固 JavaScript 基础
重点掌握:变量、函数、数组、对象、箭头函数、模块导入导出。推荐 MDN Web Docs。深入 Vue 核心功能
- 条件渲染(
v-if) - 列表渲染(
v-for) - 组件通信(props / emits)
- 路由(Vue Router)
- 状态管理(Pinia)
- 条件渲染(
对比学习 React(可选)
当你熟悉 Vue 后,可以尝试用 React 实现同样的天气卡片,感受两种框架的差异。你会发现,核心思想相通,只是语法不同。做真实项目
比如:博客系统、任务管理器、电影搜索页。GitHub 上有很多开源项目可以参考。
最后的话
我当初学编程时,最大的障碍不是技术,而是“觉得自己不行”。但只要你愿意动手敲代码,哪怕每天只写 10 行,三个月后回头看,你会惊讶于自己的进步。
Vue.js 是一个温柔的起点。它不会一上来就考你算法,而是让你快速做出“看得见”的东西,从而获得正反馈。而这,正是坚持下去的关键。
现在,打开你的终端,运行那几行命令吧。你的第一个 Vue 应用,正在等你点亮。

评论 0