Vue 目录结构 vite 项目

简介: Vue 目录结构 vite 项目

Vue3 项目常用的目录结构和每个文件的作用【通过 vite 创建的项目】

vite目录结构:

dist                          // 打包后生成的文件目录

node_modules                  // 环境依赖

public                        // 公共资源目录

   favicon.ico               // 网站图标

src                           // 项目核心文件夹

   assets                    // 静态资源目录

   components                // 组件目录

   router                    // 路由配置文件目录

       index.js              // 路由配置文件

   stores                    // pinia配置文件目录

       counter.js            // pinia配置文件

   views                     // 页面文件目录

   App.vue                   // 根组件

main.js                   // 入口文件

.gitignore                    // git忽略提交配置文件

index.html                    // 入口页面

package-lock.json             // 插件版本锁定文件

package.json                  // 插件管理文件

README.md                     // 项目说明文件

vite.config.js                // vite的配置文件

dist 文件夹:用于存放我们使用 npm run build 命令打包后的项目文件。


node_modules 文件夹:用于存放项目的各种依赖,比如 axios 等。没有 node_modules 文件夹项目就没法运行,可以使用 npm install 安装项目依赖。


public 文件夹:用于存放公共的静态资源,这里的资源不会被 vite 打包处理。


public / favicon.ico 图标:网站标签页中的小图标。


src 文件夹:项目的核心文件夹,我们所写的代码都放在这个文件夹里。


src / assets 文件夹:用于存放各种静态资源,img、css 等等。


src / components 文件夹:用于存放我们的公共组件,如 header、footer 等自定义组件。


src / router 文件夹:用于存放路由配置文件,路由配置文件可以理解为各个页面的地址路径,用于让我们访问,同时也可以在里边编写全局路由守卫。


src / stores 文件夹:用于存放 pinia 配置文件,pinia 就是一个公共的数据管理文件,里边存放着项目需要用到的数据。


src / views 文件夹:用于存放我们开发的 vue 页面,如 login、home 等页面。


src / App.vue 文件:根组件,是项目的主组件,所有的页面都要通过 App.vue 组件显示。


src / main.js 文件:入口文件,主要用于初始化 Vue 实例,也可以在此文件中引入一些组件库或者全局挂载一些变量。


.gitignore 文件:用于配置 git 上传时需要忽略上传的文件。


 index.html 文件:项目入口页面,vite 打包后的 js、css 也会自动引入到该页面中,浏览器访问项目的时候会默认打开生成好的 index.html 文件。


package-lock.json 文件:在 npm install 时生成的一份文件,用于记录当前项目实际安装的各个插件具体来源地址和版本号。并且在 npm install 时,会根据该文件生成 node_modules 文件夹。


package.json 文件:插件的基本信息,包含项目开发时所需要的插件版本,项目名称等等。


README.md 文件:项目的说明文件,可以记录项目开发时的版本和开发内容。


vite.config.js 文件:vue 的配置文件,可以用来设置代理、打包等配置。

vite 项目运行流程:

一、项目运行时会先执行 index.html 文件

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <link rel="icon" href="/favicon.ico">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vite App</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

如果开发移动端,可以将 meta 标签换成以下内容,禁止用户手动缩放。

<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">

二、执行 src / main.js 文件,在此文件中引入 Vue 与各种插件,并创建 Vue 实例。

// 引入公共 CSS 文件,如果不想要可以删掉
// 也可以将 src/assets 目录中的 base.css 和 main.css 一并删掉。
import "./assets/main.css";
// 引入 Vue 中的 createApp 工厂函数
import { createApp } from "vue";
// 引入 pinia 状态管理
import { createPinia } from "pinia";
// 引入 App 根组件
import App from "./App.vue";
// 引入路由配置
import router from "./router";
// 创建 Vue 实例,并将 App 根组件添加到页面中
const app = createApp(App);
// 应用 pinia
app.use(createPinia());
// 应用路由
app.use(router);
// 将 id 为 app 的元素挂载到 Vue 实例上
app.mount("#app");

三、执行 main.js 中引入的各种插件,包括 src / router / index.js 路由配置文件

import { createRouter, createWebHistory } from "vue-router";
// 引入组件(方式一)
import HomeView from "../views/HomeView.vue";
const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL), // 历史模式
  routes: [
    {
      path: "/",             // 这个 / 表示首页
      name: "home",          // 路由名称
      component: HomeView,   // 使用组件(方式一)
    },
    {
      path: "/about",        // 路由路径
      name: "about",         // 路由名称
      // 路由懒加载(方式二)
      component: () => import("../views/AboutView.vue"),
    },
  ],
});
export default router;

四、执行 App.vue 根组件,通过 RouterView 加载路由配置的首页(path 为 / 的页面)。

<template>
  <RouterView />
</template>

五、执行路由配置的首页 src / views / HomeView.vue 文件

<template>
  <!-- Vue3 可以不写根标签 -->
  <p class="title">{{ title }}</p>
</template>
<script>
// Vue3 支持 Vue2 的写法
export default {
  name: "HomeView",
  data() {
    return {
      title: "首页"
    }
  }
}
</script>
<style scoped>
.title {
  background-color: aqua;
}
</style>

:vite 的目录结构并非一成不变,具体的执行流程还需要结合实际情况。

原创作者: 吴小糖

创作时间:2023.8.14

相关文章
|
19天前
|
数据采集 监控 JavaScript
在 Vue 项目中使用预渲染技术
【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
|
5天前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
17天前
|
前端开发 JavaScript 容器
在 vite+vue 中使用@originjs/vite-plugin-federation 模块联邦
【10月更文挑战第25天】模块联邦是一种强大的技术,它允许将不同的微前端模块组合在一起,形成一个统一的应用。在 vite+vue 项目中,使用@originjs/vite-plugin-federation 模块联邦可以实现高效的模块共享和组合。通过本文的介绍,相信你已经了解了如何在 vite+vue 项目中使用@originjs/vite-plugin-federation 模块联邦,包括安装、配置和使用等方面。在实际开发中,你可以根据自己的需求和项目的特点,灵活地使用模块联邦,提高项目的可维护性和扩展性。
|
18天前
Vue3 项目的 setup 函数
【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
|
18天前
|
JavaScript 测试技术 UED
解决 Vue 项目中 Tree shaking 无法去除某些模块
【10月更文挑战第23天】解决 Vue 项目中 Tree shaking 无法去除某些模块的问题需要综合考虑多种因素,通过仔细分析、排查和优化,逐步提高 Tree shaking 的效果,为项目带来更好的性能和用户体验。同时,持续关注和学习相关技术的发展,不断探索新的解决方案,以适应不断变化的项目需求。
|
JavaScript Java 物联网
现有vue项目seo优化
现有vue项目seo优化
|
JavaScript 前端开发
重读vue电商网站45之项目优化上线
重读vue电商网站45之项目优化上线
132 0
重读vue电商网站45之项目优化上线
|
5天前
|
存储 缓存 JavaScript
在 Vue 中使用 computed 和 watch 时,性能问题探讨
本文探讨了在 Vue.js 中使用 computed 计算属性和 watch 监听器时可能遇到的性能问题,并提供了优化建议,帮助开发者提高应用性能。
|
5天前
|
存储 缓存 JavaScript
如何在大型 Vue 应用中有效地管理计算属性和侦听器
在大型 Vue 应用中,合理管理计算属性和侦听器是优化性能和维护性的关键。本文介绍了如何通过模块化、状态管理和避免冗余计算等方法,有效提升应用的响应性和可维护性。
|
5天前
|
存储 缓存 JavaScript
Vue 中 computed 和 watch 的差异
Vue 中的 `computed` 和 `watch` 都用于处理数据变化,但使用场景不同。`computed` 用于计算属性,依赖于其他数据自动更新;`watch` 用于监听数据变化,执行异步或复杂操作。

相关实验场景

更多