🚀 从 npm init vite 到多页应用:现代前端工程化的“开箱即爽”体验

50 阅读4分钟

尤雨溪不只写了 Vue,还顺手造了个火箭——Vite。今天我们就来聊聊,如何用它三分钟搭起一个带路由的 Vue 3 多页面项目,顺便把“前端工程化”这词儿嚼出点人味儿。


💡 你还在 npm install 等到泡面都凉了?

曾几何时,前端开发 = “等构建”。Webpack 启动?先去泡杯咖啡;热更新卡顿?不如刷会儿短视频。
直到有一天,尤雨溪(Vue.js 作者)说:“够了!我要让开发者在冷启动时快得像开了氮气。”

于是,Vite 诞生了。

Vite(法语“快”)不是又一个打包工具,而是一场对“开发体验”的温柔革命。


🛠️ 一行命令,开启“秒开”时代

npm create vite@latest my-vue-app -- --template vue

或者更简洁:

npm init vite

然后一路回车,选 Vue + JavaScript(或 TypeScript),搞定!

这时候你已经拥有了一个结构清晰、配置合理、开箱即用的现代前端项目骨架。
不信?看看目录长啥样:

my-vue-app/
├── index.html          ← 入口 HTML(注意!不是 public/index.html)
├── src/
│   ├── main.js         ← 应用入口
│   ├── App.vue         ← 根组件
│   ├── style.css       ← 全局样式
│   └── components/     ← 组件放这儿
├── package.json
└── vite.config.js      ← 配置文件(可选)

是不是清爽得像刚洗完脸?


🔥 为什么 Vite 快得离谱?

传统构建工具(比如 Webpack)启动时要先打包整个应用,再启动开发服务器——慢就慢在这“全量打包”。

而 Vite 聪明在哪?
它直接利用浏览器原生支持的 ES 模块(ESM) ,做到:

  • 冷启动几乎瞬时:只解析当前页面需要的模块。
  • 热更新(HMR)快如闪电:改一行代码,浏览器只更新那一小块,不刷新整个页面。
  • 无需打包开发阶段:开发时按需加载,构建时才用 Rollup 打包优化。

就像你去图书馆借书,Webpack 是先把整座图书馆搬回家再找你要的那本;Vite 是直接告诉你:“第3排第2架,拿走就行。”


🧩 加个路由?三步搞定多页面!

单页面应用(SPA)当然好,但总不能所有功能都塞在一个 <div> 里吧?
这时候,vue-router 上场!

第一步:安装

npm install vue-router

第二步:新建页面(建议放 views/ 目录)

<!-- src/views/Home.vue -->
<template>
  <div>🏠 欢迎回家!</div>
</template>
<!-- src/views/About.vue -->
<template>
  <div>🙋 这是关于页,讲的是我有多懒(划掉)多高效。</div>
</template>

第三步:配置路由

// src/router/index.js
import { createRouter, createWebHashHistory } from 'vue-router'
import Home from '../views/Home.vue'
import About from '../views/About.vue'

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

const router = createRouter({
  history: createWebHashHistory(), // 使用 # 路由(简单无后端依赖)
  routes
})

export default router

第四步:在主应用中启用

// src/main.js
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import './style.css'

createApp(App)
  .use(router)   // 👈 关键!注入路由能力
  .mount('#app')

第五步:在 App.vue 里放导航和占位符

<!-- src/App.vue -->
<template>
  <header>
    <nav>
      <router-link to="/">首页</router-link> |
      <router-link to="/about">关于</router-link>
    </nav>
  </header>
  <main>
    <router-view /> <!-- 页面内容在此切换 -->
  </main>
</template>

💡 router-linkrouter-view 是 vue-router 提供的全局组件,不用 import 就能用——魔法吗?不,是工程化!


🎨 开发体验拉满:不只是快

Vite 不仅快,还贴心:

  • 自动打开浏览器npm run dev 后,浏览器自己弹出来,连 Ctrl+点击都不用。

  • TypeScript / JSX / CSS 预处理器:开箱即用,无需额外配置。

  • VS Code 插件加持

    • Volar:Vue 3 官方智能提示插件(记得禁用 Vetur!)
    • Vue Devtools:Chrome 插件,实时查看组件树、状态、事件——调试神器。

🤔 所以,“工程化”到底是什么?

很多人觉得“工程化”=“一堆配置+黑话”。
其实不然。

工程化 = 把重复、繁琐、易错的事交给工具,让人专注创造。

Vite 正是这样一位“贴心管家”:

  • 你写 .vue 文件,它负责编译;
  • 你改代码,它负责热更新;
  • 你跑 build,它用 Rollup 输出极致优化的静态资源。

而你,只需要思考:用户看到什么?交互是否流畅?逻辑是否优雅?


🚀 结语:站在巨人的肩膀上写代码

从前端刀耕火种时代(手动拼 HTML + jQuery),到如今 npm init vite 三分钟搭起一个带路由、响应式、热更新的现代应用——我们真的太幸福了。

所以,别再被“工程化”吓退。
真正的工程化,是让你感觉不到它的存在,却处处受益于它。

下次当你输入 npm init vite 时,不妨对尤雨溪说声:

“谢谢,我的泡面终于能趁热吃了。”