[Vue 3 从零到上线]-第一篇:初出茅庐——环境搭建与第一个 Vue 页面

一、 为什么是 Vue 3 + TS + Vite?

在正式写代码前,我们要明白我们手中的三件"神兵利器":

Vue 3:它是一个框架。如果原生 JavaScript 是让你用散砖盖房子,Vue 就是给你提供了预制件和自动化吊车,让你专注于设计,而不是搬砖。

TypeScript (TS):它是 JavaScript 的"强化版"。普通的 JS 很随性,容易写错名字或算错数;TS 则像是一个严格的审查员,在你运行代码前就指出:"嘿,这里应该是个数字,你填个字符串会出事的!"

Vite:它是你的管家。它负责把散乱的代码打包、翻译,并以最快的速度展示在浏览器上。

二、 环境搭建的底层逻辑

当你输入 npm create vite@latest 时,后台发生了什么?

1. Node.js:你的后台引擎

Node.js 并不是一种编程语言,它是一个让 JavaScript 可以在你电脑上运行的环境。没有它,你只能在浏览器里跑代码。

关键点: npm 是 Node 附带的包管理器,就像手机里的"应用商店"。我们用它来下载各种工具(比如 Vue)。

2. Vite 模板的选择

在创建项目时,我们选择了 vue-ts 模板。这个动作帮我们自动配置好了:

一个支持 Vue 文件的开发服务器。

一套 TS 的检查规则。

一套自动化的编译流程。

三、 深度解析:第一个 Vue + TS 文件

请打开你项目中的 src/App.vue。这个文件就是 Vue 开发的核心单位:单文件组件 (SFC)。

1.<script setup lang="ts"> :智慧大脑

lang="ts" 这一行告诉 Vue:"我接下来的逻辑是用 TypeScript 写的,请按最严格的标准检查我。"

typescript 复制代码
<script setup lang="ts">
// 1. 定义一个简单的变量
// TS 会自动推断出这个变量是一个字符串类型 (string)
const welcomeMessage: string = "欢迎来到 Vue 3 + TS 的世界!";

// 2. 定义一个更复杂的对象
interface ProjectInfo {
  name: string;
  version: number;
}

const currentProject: ProjectInfo = {
  name: "我的第一个 Vue 页面",
  version: 1.0
};
</script>

为什么要写 interface(接口)? 这就是 TS 的魅力。如果你不小心把 version 改成了 "v1.0"(字符串),编辑器会立刻变红报错。在大型项目中,这能救你的命。

2. <template> :视觉皮肤

这里写的是 HTML。Vue 允许你使用 {{ }}(大括号)把大脑里的数据"注入"到皮肤里。

HTML 复制代码
<template>
  <main>
    <h1>{{ welcomeMessage }}</h1>
    <div class="card">
      <p>项目名称:{{ currentProject.name }}</p>
      <p>版本号:{{ currentProject.version }}</p>
    </div>
  </main>
</template>

3. <style scoped>:独立试衣间

scoped 关键字非常重要。它保证了这里的样式只会在当前的组件里生效。你不用担心在这里写了一个 h1 的颜色,会导致全网页的标题都变色。

四、 从创建到运行:代码的生命旅程

流程:

npm install (安装依赖):

Vite 会根据项目里的 package.json 清单,去云端下载成千上万个小的代码包。

这些包放在 node_modules 文件夹里。这个文件夹通常很大,千万不要手动去改它。

npm run dev (开发环境运行):

Vite 在内存里启动一个超小型的 Web 服务器。

当你在编辑器保存代码时,Vite 只会把改变的那一小块代码重新翻译给浏览器,这就是为什么网页能"瞬间更新"。

五、 小白必会的工程目录结构

当你打开文件夹,可能会被吓到。别担心,你只需要关注这几个:

index.html:整个应用的入口。就像房子的地基。

src/:这是你的办公区,几乎所有的代码都写在这里。

src/main.ts:这是房子的"总闸",它负责把 Vue 这个系统安装到 HTML 页面上。

package.json:项目的"说明书",记录了项目名字、启动命令和用了哪些插件。

🌟 下篇预告

现在的网页虽然能动,但它还不够"聪明"。 在第二篇中,将学习 Vue 3 最核心的技能:响应式系统。如何定义一个"会变"的数据,并让网页根据用户的操作做出即时反馈。

相关推荐
liangshanbo121535 分钟前
React Fiber:从“解决卡顿”到完整更新链路
前端·javascript·react.js
Timmy43 分钟前
前端转全栈笔记:讲框架之前,先把 TypeScript 这关过了
前端·人工智能·node.js
计算机魔术师1 小时前
年收入650亿、亏420亿,Anthropic凭什么敢叫价万亿?
前端
Frag0ut1 小时前
Chrome Canary 最新实验功能:AI Mode、按设备筛选历史记录与 Gemini 自动改密
前端·人工智能·chrome·dev·beta·canary·最新实验功能
雪芽蓝域zzs1 小时前
第3节:el-select 弹窗定位、滚动穿透与挂载容器(popper-append-to-body /teleported)
vue.js·elementui
anew___1 小时前
《从零手写操作系统 (19):Ext2文件系统实战——从内存到磁盘的跨越》
java·服务器·前端·数据库·算法
吴声子夜歌1 小时前
Nginx应用与运维——Nginx Web服务应用实战(HTTPS安全服务器的搭建)
运维·前端·nginx
liangshanbo12151 小时前
Monorepo 工程化面试题:如何设计 Web + Node.js 中间层 + Shared + Scripts 的 Monorepo?
前端·node.js
IT_陈寒2 小时前
Redis集群切换主节点时,服务竟然全员掉线
前端·人工智能·后端
wangbing11252 小时前
开发指南147-WebSocket-前端
前端·websocket·网络协议