Vue3 目录结构

create-vue 生成的工程目录高度统一,看懂它就能快速定位任何文件。下面先给出一棵标准目录树,再逐项解释各部分的作用。

标准目录树

vue3-demo/
├── index.html            # HTML 入口
├── package.json          # 项目配置与脚本
├── vite.config.js        # 构建配置
├── public/               # 公共静态资源(原样复制)
├── src/                  # 源代码目录
│   ├── main.js           # 应用启动入口
│   ├── App.vue           # 根组件
│   ├── assets/           # 图片、样式等资源
│   ├── components/       # 公共组件
│   ├── views/            # 页面级组件(按需自行创建)
│   ├── router/           # 路由配置(启用后生成)
│   └── stores/           # Pinia 状态(启用后生成)
├── .vscode/              # 编辑器推荐配置
├── .gitignore            # Git 忽略规则
└── README.md             # 项目说明

src:日常开发主战场

绝大多数编码都发生在 src 下:

  • main.js 创建并挂载应用;
  • App.vue 是根组件,承载整体布局;
  • components/ 放按钮、卡片等可复用组件;
  • views/ 约定存放路由对应的整页组件;
  • assets/ 里的图片、字体经打包处理;
  • router/ 与 stores/ 在创建时勾选相应功能后自动生成。

public 与 assets 的区别

目录处理方式适用场景
public/原样复制到 dist,引用用绝对路径 /logo.pngfavicon、外部静态文件
assets/经构建压缩并加内容哈希组件内引用的图片、样式

组件中引用资源示例

<!-- 在任意 .vue 组件中引用 assets 图片 -->
<script setup>
import logo from './assets/logo.png'
</script>

<template>
  <img :src="logo" alt="logo" />
  <!-- public 下的图片直接用绝对路径 -->
  <img src="/favicon.ico" alt="icon" />
</template>

模板中用 :src 动态绑定,Vite 构建时会自动处理引用路径。

常用约定

  • 可自行新增 utils/(工具函数)、hooks/(组合式函数)等目录。
  • 组件文件建议大驼峰命名(HelloWorld.vue),模板内写作 <HelloWorld />
  • 页面与组件按职责分目录,避免全部堆在 App.vue 中。

小结

记住约定:src 放源码、public 放原样资源、components 放复用组件、views 放页面。遵循这套结构,大型项目的维护与协作都会顺畅很多。

笔记加载中…