从零搭一个 Vue 小家:用 Vite + 路由轻松入门现代前端开发

从零开始,轻松走进 Vue 的世界:一个"全家桶"小项目的搭建之旅

如果你刚刚接触前端开发,听到"Vue"、"Vite"、"路由"这些词时是不是有点懵?别担心!我们可以把写代码想象成搭积木、装修房子、甚至安排一场家庭旅行 。今天,我们就通过一个名为 all-vue 的小项目,带你一步步理解现代 Vue 应用是怎么"搭起来"的。


🏠 第一步:选好地基------用 Vite 快速建项目

什么是vite?

Vite (法语,意为"快")是一个由 Vue.js 作者 尤雨溪(Evan You) 主导开发的现代化前端构建工具。它旨在解决传统打包工具(如 Webpack)在开发阶段启动慢、热更新(HMR)延迟高等问题,提供极速的开发体验。

想象你要盖一栋房子。传统方式可能要先打地基、砌砖、铺电线......繁琐又耗时。而 Vite 就像一位超级高效的建筑承包商,你只要说一句:"我要一个 Vue 房子",它立刻给你搭好框架,连水电都通好了!

在终端里运行:

sql 复制代码
npm init vite@latest all-vue -- --template vue

几秒钟后,你就得到了一个结构清晰的项目目录。其中最关键的是:

  • index.html:这是你房子的"大门",浏览器一打开就看到它。
  • src/main.js:这是整栋房子的"总开关",负责启动整个应用。
  • src/App.vue:这是"客厅",所有房间(页面)都要从这里进出。

Vite 的优势在于------修改代码后,浏览器几乎瞬间刷新,就像你换了个沙发,家人马上就能坐上去试舒服不舒服。


🏗️ 第二步:认识整栋楼------项目结构概览

运行 npm init vite@latest all-vue -- --template vue 后,你会得到这样一栋"数字公寓":

项目结构简略预览:

bash 复制代码
/all-vue
├── public/            # 公共资源(如 logo.png)
├── src/
│   ├── assets/        # 图片、字体等静态资源
│   ├── components/    # 可复用的小部件(按钮、卡片等)
│   ├── views/         # 独立页面(首页、关于页等)
|   |     |------ About.vue # 关于页面的Vue组件
|   |     |------ Home.vue # 主页的vue组件
│   ├── router/        # 室内导航系统
|   |     |------ index.js # 路由总控
│   ├── App.vue        # 中央控制台(客厅)
│   └── main.js        # 智能钥匙
├── index.html         # 入户大门
├── package.json       # 公寓的"住户手册 + 装修清单"
└── vite.config.js     # 建筑规范说明书

其中,package.json 就像这栋楼的住户手册 + 装修材料清单。打开它,你会看到:

perl 复制代码
{
  "name": "all-vue",
  "version": "0.0.0",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "vue": "^3.4.0",
    "vue-router": "^4.3.0"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^5.0.0",
    "vite": "^5.0.0"
  }
}
  • dependencies:这是"入住必需品",比如 Vue 框架本身、路由系统------没有它们,房子没法正常运转;
  • devDependencies:这是"装修工具包",只在开发时用(比如 Vite 构建工具),住户入住后就不需要了;
  • scripts :这是"快捷指令",比如 npm run dev 就是"启动预览模式",npm run build 是"打包交付"。

有了这份清单,任何开发者都能一键还原你的整套环境------就像照着宜家说明书组装家具一样可靠。


🚪 第三步:认识"大门"------index.html 的两个秘密

虽然现代 Vue 应用的逻辑几乎全在 JavaScript 和 .vue 文件里,但一切的起点,其实是这个看似简单的 index.html

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <link rel="icon" type="image/svg+xml" href="/vite.svg" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>all-vue</title>
</head>
<body>
  <div id="app"></div>
  <script type="module" src="/src/main.js"></script>
</body>
</html>

别小看这十几行代码,它藏着两个关键设计:

🔌 1. <div id="app"></div>:Vue 的"插座"

你可以把它想象成墙上预留的一个智能插座面板。它本身空无一物,但一旦通电(Vue 应用启动),就会自动"投影"出整个用户界面。

main.js 中,我们这样写:

js 复制代码
createApp(App).mount('#app')

这句话的意思就是:"请把 App.vue 这个'客厅'的内容,投射到 id 为 app 的那个插座上。"

没有这个插座,Vue 再厉害也无处施展;有了它,动态内容才能在静态 HTML 中生根发芽。

⚡ 2. <script type="module" src="/src/main.js"></script>:原生 ES 模块的魔法

注意这里的 type="module"。这是现代浏览器支持的一种原生模块加载方式。传统脚本是"一股脑全塞进来",而模块化脚本则像快递包裹------每个文件独立打包,按需引用,互不干扰。

Vite 正是利用了这一特性,无需打包即可直接在浏览器中运行模块化的代码。这意味着:

  • 开发时启动飞快(冷启动快);
  • 修改文件后热更新极快(HMR 精准替换);
  • 代码结构清晰,符合现代工程规范。

所以,index.html 不仅是入口,更是连接静态 HTML 世界动态 Vue 世界的桥梁。


🔑 第四步:打造"钥匙"------main.js 如何启动应用

有了大门,就得有钥匙。main.js 就是这把精密的电子钥匙,负责激活整套智能家居系统:

js 复制代码
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import './style.css'

createApp(App).use(router).mount('#app')

这段代码做了三件事,环环相扣:

  1. 引入核心模块 :从 Vue 拿到"造房子"的工具(createApp),从本地拿到"客厅设计图"(App.vue)和"导航系统"(router);
  2. 组装系统 :用 .use(router) 把导航插件装进主程序;
  3. 插入插座.mount('#app') 表示:"请把这套系统通电安装在 index.html 中 id 为 app 的插座上。"

没有这把钥匙,再漂亮的客厅也只是一堆图纸;有了它,整个房子才真正"活"起来。


💡 第五步:点亮客厅------根组件 App.vue

钥匙转动,门开了,我们走进 App.vue ------ 这是所有功能的总控中心:

xml 复制代码
<template>
  <div id="app">
    <nav>
      <router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link>
    </nav>
    <router-view />
  </div>
</template>

多人一开始会直接写 <div>Home | About</div>,但这只是静态文字。要让它们变成可点击的导航,就得用 Vue Router 提供的 <router-link> 组件。

这里有两个核心元素:

  • <router-link> :智能门把手,点击不刷新页面,只切换内容;
  • <router-view /> :魔法地板,当前该展示哪个房间,它就实时投影出来。

虽然原始文件只写了 HomeAbout,但正确的写法应如上所示------让文字变成可交互的导航。


🗺️ 第六步:装上导航系统------配置 Vue Router

路由,就像是你家里的智能导航系统。没有它,你只能待在客厅;有了它,你才能自由穿梭于各个房间。

我们在 src/router/index.js 中这样配置:

js 复制代码
import { createRouter, createWebHashHistory } from 'vue-router';
import Home from '../views/Home.vue'
import About from '../views/About.vue'

const routes = [
  { path: '/', name: 'Home', component: Home },
  { path: '/about', name: 'About', component: About }
]

const router = createRouter({
  history: createWebHashHistory(),
  routes
})

export default router

这段代码的意思是:

  • 当用户访问 /(也就是主页),就显示 Home.vue 这个房间;
  • 当用户访问 /about,就带他去 About.vue 那个房间。

注意这里用了 createWebHashHistory(),这意味着网址会变成 http://localhost:5173/#/about。那个 # 就像门牌号里的"分隔符",告诉系统:"后面的部分是内部房间号,不是新地址"。


🛋️ 第七步:布置房间------编写页面组件

现在,我们来装修两个房间。

首页(Home.vue)

xml 复制代码
<template>
  <div>
    <h1>Home</h1>
  </div>
</template>

关于页(About.vue)

xml 复制代码
<template>
  <div>
    <h1>About</h1>
  </div>
</template>

每个 .vue 文件都是一个自包含的"功能单元":有自己的结构(template)、逻辑(script)和样式(style)。它们彼此隔离,却能通过路由无缝切换。


🎨 第八步:美化家园------全局样式 style.css

虽然功能齐备,但房子还是灰扑扑的。这时候,style.css 就派上用场了。你可以在这里写:

css 复制代码
body {
  font-family: 'Arial', sans-serif;
  background-color: #f5f5f5;
}

nav {
  padding: 1rem;
  background: white;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

就像给墙壁刷漆、给地板打蜡,让整个家更温馨舒适。


▶️ 最后一步:启动你的 Vue 家园!

现在,所有"装修材料"都已就位------地基打好了(Vite 项目)、大门装上了(index.html)、钥匙配好了(main.js)、客厅布置妥当(App.vue),连房间(Home.vueAbout.vue)和导航系统(Vue Router)也都调试完毕。是时候打开电闸,点亮整栋房子了!

请在终端(命令行)中依次执行以下两条命令(确保你已在 all-vue 项目目录下):

bash 复制代码
# 第一步:安装"住户手册"里列出的所有依赖(比如 Vue 和路由)
npm install

# 第二步:启动开发服务器------相当于按下"智能家居总开关"
npm run dev

运行成功后,你会看到类似这样的提示:

arduino 复制代码
  VITE v5.0.0  ready in 320 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose

这时,只需打开浏览器,访问 http://localhost:5173/ (端口号可能略有不同),就能看到你的 Vue 小家啦!

  • 点击 Home,客厅中央显示 "Home";
  • 点击 About ,瞬间切换到 "About" 页面------全程无需刷新,就像在家自由走动一样丝滑。

🎉 恭喜你!你不仅看懂了代码,还亲手让它跑起来了!

这不再是一堆抽象的文件,而是一个真正能交互的 Web 应用。你已经完成了从"零"到"一"的飞跃------而这,正是所有伟大项目的起点。


🧩 总结:Vue 项目的"生活化"逻辑链

让我们用一次智能家居入住体验来串起全过程:

  1. Vite 是开发商:提供标准化精装修样板间;
  2. index.html 是入户门 :设有智能插座(#app)和模块化接线口(type="module");
  3. main.js 是电子钥匙:插入后激活整套系统;
  4. App.vue 是中央控制台:集成导航与内容展示区;
  5. Vue Router 是室内导航图:定义各房间路径;
  6. Home.vue / About.vue 是功能房间:各自独立,按需进入;
  7. style.css 是全屋软装方案:统一视觉风格。

✨ 写在最后:你已经站在 Vue 的门口

这个 all-vue 项目虽小,却包含了现代 Vue 应用的核心骨架:组件化 + 路由 + 响应式 + 工程化构建。你不需要一开始就懂所有细节,就像学骑自行车,先扶稳车把,再慢慢蹬脚踏。

当你运行 npm run dev,看到浏览器里出现"Home"和"About"两个链接,并能自由切换时------恭喜你,你已经成功迈出了 Vue 开发的第一步!

接下来,你可以:

  • 在 Home 里加一张图片;
  • 在 About 里写一段自我介绍;
  • 用 CSS 让导航栏变彩色;
  • 甚至添加第三个页面......

编程不是魔法,而是一步步搭建的过程。而你,已经搭好了第一块积木。

相关推荐
懒猫爱上鱼2 小时前
Android 四大组件与 AMS 交互的完整对比
面试
华清远见成都中心2 小时前
嵌入式工程师技术面试有哪些注意事项?
面试·职场和发展
沐雪架构师2 小时前
大模型Agent面试精选15题(第三辑)LangChain框架与Agent开发的高频面试题
面试·职场和发展
xiaoxue..2 小时前
React 之 Hooks
前端·javascript·react.js·面试·前端框架
莫物3 小时前
element el-table表格 添加唯一标识
前端·javascript·vue.js
vx_bisheyuange3 小时前
基于SpringBoot的便利店信息管理系统
前端·javascript·vue.js·毕业设计
www_stdio3 小时前
爬楼梯?不,你在攀登算法的珠穆朗玛峰!
前端·javascript·面试
风止何安啊3 小时前
🚀别再卷 Redux 了!Zustand 才是 React 状态管理的躺平神器
前端·react.js·面试
白露与泡影3 小时前
2026年Java面试题目收集整理归纳(持续更新)
java·开发语言·面试