首页 > 其他分享 >[web-front-end] Web前端(1)Vue项目目录结构 [转]

[web-front-end] Web前端(1)Vue项目目录结构 [转]

时间:2024-03-18 12:44:35浏览次数:23  
标签:web Vue end js vue 组件 config 目录

0 序

  • 因近期接触开源项目,需温故、了解一下基于Vue框架等前端工程的目录结构。
  • 本文属于笔记类博文,非原创,主要阅读对象:博主本人。

1 Vue项目目录结构

1.1 目录结构

  • Vue项目的目录结构通常是由Vue CLIVue命令行界面)生成的默认结构,它提供了一个基本的项目框架。

以下是一个典型的Vue项目目录结构示例:

├── public
│   ├── index.html
│   └── ...
├── src
│   ├── assets
│   │   └── ...
│   ├── components
│   │   └── ...
│   ├── views
│   │   └── ...
│   ├── App.vue
│   └── main.js
├── node_modules
│   └── ...
├── package.json
├── babel.config.js
├── webpack.config.js
└── ...

1.2 目录解释

下面来解释每个目录和文件的作用:

  • public/:这是公共目录,其中的文件在构建过程中会直接复制到输出目录。其中包括index.html,作为应用程序的主HTML文件,可以在这里放置一些静态资源

  • src/:这是源代码目录,包含了整个Vue应用程序的主要代码。
  • assets/:这是存放静态资源(如图像、样式文件等)的目录。
  • components/:这是存放可复用组件的目录,通常包含一些小型的、独立的Vue组件。
  • views/:这是存放页面级组件的目录,通常包含与路由对应的大型Vue组件。
  • App.vue:这是应用程序的根组件,它是所有其他组件的父组件。

  • main.js:这是应用程序的入口文件,其中包含了初始化Vue应用实例的代码。

  • node_modules/:这是通过npm安装的第三方依赖库的目录,包含了项目所使用的所有依赖项。

  • package.json:这是项目的配置文件,其中包含了项目的元数据、依赖项列表和脚本命令等信息。

  • babel.config.js:这是Babel的配置文件,用于配置Babel编译器的转译规则

babel 是一个JavaScript 编译器
Babel 是一个工具链,主要用于将采用 ECMAScript 2015+ 语法编写的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。
详情参见:https://www.babeljs.cn/

  • webpack.config.js:这是Webpack的配置文件,用于配置Webpack构建工具的各种功能和插件。

WebPack可看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(SassTypeScript等),并将其【转换】和【打包】为合适的格式供浏览器使用。
在3.0出现后,Webpack还肩负起了【优化】前端项目的责任。即承担如下工作:

  • 打包:可以把多个Javascript文件打包成一个文件,减少服务器压力和下载带宽。
  • 转换:把拓展语言转换成为普通的JavaScript,让浏览器顺利运行。
  • 优化:前端变的越来越复杂后,性能也会遇到问题,而WebPack也开始肩负起了优化和提升性能的责任
  • vue.config.js : 一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。你也可以使用 package.json 中的 vue 字段,但是注意这种写法需要你严格遵照 JSON 的格式来写。详情参见:https://cli.vuejs.org/zh/config/#vue-config-js

这个文件应该导出一个包含了选项的对象:

// vue.config.js

/**
 * @type {import('@vue/cli-service').ProjectOptions}
 */
module.exports = {
  // 选项...
}

或者,你也可以使用 @vue/cli-service 提供的 defineConfig 帮手函数,以获得更好的类型提示:

// vue.config.js
const { defineConfig } = require('@vue/cli-service')

module.exports = defineConfig({
  // 选项
})

1.3 小结

  • 这只是一个简单的Vue项目目录结构示例,实际上,随着项目的复杂性增加和使用的工具和库的不同,目录结构可能会有所变化。但是,这个基本结构可以帮助您组织Vue项目的代码和资源,并提供一个清晰的开发环境。

  • Vue文件是Vue.js框架中的一种特殊文件格式,用于编写Vue组件。Vue文件使用.vue作为文件扩展名,它将模板、脚本和样式等相关代码组织在一个文件中,提供了一种结构化的方式来定义组件。

  • 一个典型的Vue文件包含3个主要部分:模板(Template)脚本(Script)样式(Style)

下面是对每个部分的简要介绍:

  • 模板(Template):模板部分定义了组件的HTML结构和布局。它使用Vue的模板语法,可以包含绑定表达式、指令、条件渲染、循环和事件处理等内容。模板部分使用Vue的编译器将模板转换为渲染函数,用于生成实际的DOM元素。
  • 脚本(Script):脚本部分包含了组件的JavaScript代码逻辑。它使用Vue的脚本语法,可以定义组件的数据、计算属性、方法和生命周期钩子函数等。脚本部分使用JavaScript的模块化语法,可以导入其他模块、组件或第三方库,并导出组件对象。
  • 样式(Style):样式部分用于定义组件的样式规则。它可以使用CSS、SCSS、Less等CSS预处理器语法,以及Vue的样式作用域特性。样式部分中定义的样式仅对当前组件生效,不会影响其他组件或全局样式。

通过将模板、脚本和样式集中在一个文件中,Vue文件提供了更高的可维护性和可读性,使得组件的开发更加方便和快速。

X 参考文献

  • webpack
  • vue

标签:web,Vue,end,js,vue,组件,config,目录
From: https://www.cnblogs.com/johnnyzen/p/18080113

相关文章

  • Node+Vue毕设少儿编程教育系统(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在当今信息化社会,编程教育逐渐成为儿童素质教育的重要组成部分。越来越多的家长认识到从小培养孩子的计算机思维和编程能力对其未来学习和职业发展的重要性......
  • Node+Vue毕设设备管理系统(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着企业规模的不断扩大和设备数量的激增,设备管理已经成为组织运营中的一个核心环节。高效、精确的设备管理系统对于确保设备的正常运行、降低维护成本、提......
  • Node+Vue毕设社区电商平台后台审核系统(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,社区电商作为一种新兴的商业模式迅速崛起。它依托社区的地理优势和社交网络,通过线上线下相结合的方式,为用户提供便捷的购物体验。......
  • Node+Vue毕设社区居家养老服务平台(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义以上选题背景和意义内容是根据本选题撰写,非本作品实际的选题背景、意义或功能。各位童鞋可参考用于写开题选题和意义内容切勿直接引用。本成品的实际功能和技术以下......
  • vite打包分包vue3
    //https://vitejs.dev/config///vite.config.jsexportdefaultdefineConfig({plugins:[vue(),vueJsx()],resolve:{alias:{'@':fileURLToPath(newURL('./src',import.meta.url))}},css:{preprocessorOptio......
  • vue页面纯前端导出excel表格(多级表头,exceljs)
    查找对比因为是第一次实现这样的功能,先在网上进行了查找,发现了三种比较常用的方法:1.安装file-saverxlsxscript-loader如果想设置表格样式的话,需要同时安装依赖xlsx-style,通常情况下安装此依赖会报错,需要进行修改;2.安装vue-json-excel这个插件看起来比较好上手,但是好像只......
  • 262:vue+openlayers 移动地图获取中心点经纬度信息
    第262个点击查看专栏目录本示例介绍演示如何在vue+openlayers中移动地图并获取中心点经纬度信息。这里主要用到了是view的getCenter方法,这一功能在实际项目中很有用,能给出一个清晰的定位。直接复制下面的vue+openlayers源代码,操作2分钟即可运行实现效果文......
  • Vue3学习日记 Day4
    注:此课程需要有Git的基础才能学习一、pnpm包管理工具1、使用原因  1.1、速度快,远胜过yarn和npm  1.2、节省磁盘空间 2、使用方式  2.1、安装方式    npminstall-gpnpm  2.2、创建项目    pnpmcreatevue   二、Eslint......
  • Vue3学习日记 Day3 —— Pinia的介绍及使用
    一、Pinia1、介绍 1、介绍 Pinia是Vue最新的状态管理工具,是Vuex的替代品 2、变化 2.1、去掉了modules和mutation,每一个store都是一个独立的模块 2.2、actions即可提供异步,又可提供同步,且可直接修改state数据 2.3、提供更加符合、组合式风格的API ......
  • 基于Java的厦门旅游电子商务预订系统(Vue.js+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1景点类型模块2.2景点档案模块2.3酒店管理模块2.4美食管理模块三、系统设计3.1用例设计3.2数据库设计3.2.1学生表3.2.2学生表3.2.3学生表3.2.4学生表四、系统展示五、核心代码5.1新增景点类型5.2查......