请说出Vue.cli项目中src目录每个文件夹和文件的用法?
在 Vue CLI 创建的标准项目结构中,src/ 目录是项目的核心,它包含了你要开发的主要内容。下面是 src/ 目录下常见的文件和文件夹及其作用:
src/ 目录结构及说明
src/
├── assets/
├── components/
├── views/
├── router/
├── store/
├── utils/
├── api/
├── App.vue
├── main.js
└── permission.js (可选)
核心文件和文件夹说明
1. main.js
-
作用:项目入口文件。
-
内容:初始化 Vue 实例,挂载根组件 App.vue,并注入路由 router、状态管理 store。
-
示例:
import Vue from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';
new Vue({
router,
store,
render: h => h(App),
}).$mount('#app');
2. App.vue
-
作用:根组件,通常包含应用的主布局、路由出口
<router-view>等。 -
特点:整个应用的“壳”。
3. assets/
-
作用:存放静态资源,如图片、样式、字体等。
-
特点:通过 @/assets/... 引用,可以被 Webpack 打包处理。
4. components/
-
作用:存放项目中可复用的 Vue 组件(非页面级)。
-
特点:例如按钮、弹窗、表单等 UI 模块。
5. views/(或 pages/)
-
作用:存放“页面级”组件,通常对应路由。
-
特点:如首页、登录页、列表页等,每个 .vue 对应一个完整页面。
6. router/
-
作用:配置 Vue Router。
-
内容:
-
index.js 是主路由配置文件。
-
定义路由路径、组件映射、守卫等。
7. store/
-
作用:配置 Vuex 状态管理(如果用到了 Vuex)。
-
内容:
-
index.js:Vuex 初始化入口。
-
可拆分为多个模块,如 user.js, menu.js 等。
8. api/(自定义,推荐)
-
作用:封装与后端交互的接口请求。
-
特点:常结合 axios 使用,方便统一管理接口。
-
结构建议:
// api/user.js
export function login(data) {
return request({
url: '/user/login',
method: 'post',
data
});
}
9. utils/(自定义,推荐)
-
作用:工具函数集合,如格式化时间、深拷贝、节流防抖等。
-
结构建议:
// utils/date.js
export function formatDate(date) { ... }
10. permission.js(可选)
-
作用:权限控制逻辑,结合路由守卫做页面访问控制。
-
位置:可放在 src/ 根目录中,配合 router.beforeEach 使用。
其他常见目录(可选)
layouts/
用于管理页面布局组件,例如侧边栏+顶部导航的组合结构。
directives/
存放自定义指令,如 v-permission 权限指令等。
mixins/
复用逻辑代码,比如分页逻辑、表单校验等。
plugins/
注册全局插件,如 Element UI、ECharts、dayjs 等。
补充说明
@ 是 src/ 的别名,可以在 vue.config.js 里配置:
configureWebpack: {
resolve: {
alias: {
'@': path.resolve(__dirname, 'src'),
}
}
}
项目目录结构可根据团队或项目复杂度灵活调整,但基本结构应保持清晰、分层明确。
浙公网安备 33010602011771号