Vue.js:代码架构组成与布局设置

前言:最近在弄一个开源的管理系统项目,前后端分离开发,这里对前端的Vue框架做一个总结,有遗漏和错误的地方欢迎大家指出~

🏡个人主页:謬熙,欢迎各位大佬到访❤️❤️❤️~
👲个人简介:本人编程小白,正在学习互联网开发求职知识……
如果您觉得本文对您有帮助的话,记得点赞👍、收藏⭐️、评论💬,如果文章有什么需要改进的地方还请大佬不吝赐教🙏🙏🙏
在这里插入图片描述

目录

  • 一、Vue.js简介
  • 1.1 什么是Vue.js
  • 1.2 与其它框架对比
  • 二、 Vue项目结构组成
    • 2.1 目录结构概览
    • 2.2 核心目录和文件详解
      • node_modules/
      • public/
      • src/
      • tests/
      • 配置文件
    • 2.3 核心文件作用与联系
      • main.js
      • App.vue
      • router/index.js
      • store/index.js
    • 2.4. 文件执行顺序与关联
    • 三、 Vue布局
      • 3.1 基本布局方式
      • 3.2 响应式布局
      • 3.3 Flex布局
  • 四、常见关键字和术语
    • 4.1 HTML标签
    • 4.2 脚本
    • 4.3 布局和样式

一、Vue.js简介

1.1 什么是Vue.js

在这里插入图片描述

Vue.js,简称Vue,是一个构建用户界面的渐进式JavaScript框架。它由前Google工程师尤雨溪(Evan You)创建,并于2014年正式开源。Vue的设计哲学是轻量级、组件化、易学易用,同时它也能够支持构建大型、复杂的单页应用(SPA)。Vue的核心库只关注视图层,不仅易于上手,而且可以轻松地与其他库或已有项目整合。

1.2 与其它框架对比

在前端开发领域,Vue.js、React和Angular是三个备受欢迎的框架。它们都在一定程度上解决了前端开发中的问题,但各自有着不同的特点和适用场景。

特性Vue.jsReactAngular
学习曲线
灵活性
生态系统
响应式支持支持支持
双向数据绑定支持不支持支持

二、 Vue项目结构组成

2.1 目录结构概览

一个典型的Vue项目结构通常包含以下核心目录和文件:

my-vue/
├── node_modules/
├── public/
│   ├── favicon.ico
│   └── index.html
├── src/
│   ├── assets/
│   ├── components/
│   ├── views/
│   ├── router/
│   ├── store/
│   ├── App.vue
│   └── main.js
├── tests/
├── .gitignore
├── babel.config.js
├── package.json
├── README.md
└── vue.config.js

2.2 核心目录和文件详解

node_modules/

  • 作用:存放项目的所有依赖包,由npm或yarn管理。
  • 核心性:极高,项目运行所依赖的所有第三方库都存放于此。

public/

  • 作用:包含不会被Webpack处理的静态资源。
  • 核心文件
    • favicon.ico:网站图标。
    • index.html:应用的主HTML文件,Vue实例会挂载到这个文件中的<div id="app"></div>元素上。

src/

  • 作用:项目的源代码目录,包含应用的核心代码。
  • 子目录
    • assets/:存放静态资源,如图片、样式文件等。
    • components/:存放项目的Vue组件。
    • views/:存放页面级组件,通常对应路由。
    • router/:定义路由配置。
    • store/:Vuex状态管理目录。
    • App.vue:根组件,所有页面组件都是其子组件。
    • main.js:入口文件,初始化Vue实例并挂载到DOM上。

tests/

  • 作用:存放测试代码,包括单元测试和端到端测试。

配置文件

  • .gitignore:指定Git忽略的文件和目录。
  • babel.config.js:Babel配置文件,用于转换ES6+代码。
  • package.json:项目配置文件,包含依赖列表和脚本命令。
  • README.md:项目说明文档。
  • vue.config.js:Vue CLI配置文件,用于自定义Webpack配置。

2.3 核心文件作用与联系

main.js

  • 作用:作为项目的入口文件,负责创建和挂载Vue实例。
  • 联系:导入App.vue作为根组件,并通过routerstore配置文件连接路由和状态管理。

App.vue

  • 作用:作为根组件,包含应用的整体布局和全局样式。
  • 联系:使用<router-view>作为占位符,根据当前路由显示对应的视图组件。

router/index.js

  • 作用:定义应用的路由规则,指定路径与组件的映射关系。
  • 联系:与views/中的视图组件紧密相关,根据路由配置渲染相应的视图。

store/index.js

  • 作用:使用Vuex进行状态管理,集中存储和管理应用的全局状态。
  • 联系:与components/views/中的组件相连,通过mapStatemapGetters等辅助函数为组件提供状态和方法。

2.4. 文件执行顺序与关联

在Vue.js项目中,从配置依赖项开始到打开前端页面进行交互的顺序大致如下:

  1. package.json:这是项目的配置文件,它定义了项目的依赖项和脚本命令。开发者通过npm installyarn来安装依赖项。
  2. .gitignore:在将项目推送到Git版本控制系统之前,.gitignore文件用来指定需要忽略的文件和目录,避免将不必要的文件包含到版本控制。
  3. babel.config.js:Babel配置文件,它确保ES6+代码能够被转译成兼容旧浏览器的代码。
  4. vue.config.js:这是一个可选的配置文件,用于自定义Vue CLI的构建行为,比如修改Webpack配置。
  5. src/main.js:这是JavaScript的入口文件。在项目构建过程中,main.js会被处理并打包,最终生成一个JavaScript文件,这个文件会在浏览器加载index.html后执行。
  6. src/App.vue:作为根组件,App.vuemain.js中被引入,并挂载到index.htmldiv#app元素上。
  7. src/router/index.js:如果项目中使用了Vue Router,main.js会导入并使用它,以便设置路由。路由定义了应用的页面结构和路径。
  8. src/store/index.js:如果项目中使用了Vuex进行状态管理,main.js也会导入并使用它。Vuex存储在全局状态中,可以在任何组件中通过this.$store访问。
  9. src/api/*:如果项目中有API请求,通常会在这些文件中定义。它们可以被任何组件导入并用于数据交互。
  10. src/assets/:包含应用的静态资源,如图片、样式表等。这些资源可以在组件中通过import语句导入并使用。
  11. src/components/*:这些是可复用的子组件,它们可以被App.vue或其他组件按需引用。
  12. src/views/*:这些是页面级别的组件,通常与路由配置相关联。它们根据路由的变化被创建和销毁。
  13. src/tests/*:包含应用的测试代码。这些测试可以在开发过程中或持续集成流程中运行。
  14. public/index.html:这是项目的入口点。当用户访问网站时,这个HTML文件被首先加载。它通常包含一个<div id="app">元素,作为Vue应用的挂载点。
  15. 启动开发服务器:通过运行npm run serveyarn serve命令,Vue CLI会启动一个开发服务器,使得开发者可以在本地预览和调试应用。
  16. 构建生产环境:通过运行npm run buildyarn build命令,Vue CLI会构建应用,准备部署到生产环境。
  17. 部署应用:构建完成后,将生成的静态文件部署到服务器,用户就可以通过浏览器访问并与之交互了。

三、 Vue布局

3.1 基本布局方式

  • 单栏布局:适用于简单页面或移动端页面。
  • 两栏布局:常用于PC端网页,分为左栏和右栏。
  • 三栏布局:将内容区域分为左栏、中栏和右栏。

3.2 响应式布局

  • 媒体查询(Media Queries):根据不同设备特性应用不同样式。
  • 响应式CSS框架:如Bootstrap和Tailwind CSS,提供自定义组件和样式。
  • Grid布局:实现复杂页面布局。

3.3 Flex布局

  • 基本用法:通过设置display: flex实现灵活布局。
  • 水平居中和垂直居中:Flex布局轻松实现居中效果。
  • 自适应宽度和固定宽度:Flex布局可以根据内容大小自动调整宽度。

四、常见关键字和术语

以下是前端开发中常用的HTML标签和脚本相关术语的条理化解释:

4.1 HTML标签

术语解释应用场景
<div>一个通用的容器元素,用于组织和分组HTML元素。布局和样式应用,常用于CSS布局。
<script>用于嵌入或引用JavaScript代码。在HTML文档中引入JavaScript逻辑。

4.2 脚本

术语解释应用场景
同步加载<script>标签默认行为,会阻塞HTML解析直到脚本加载并执行完毕。适用于依赖DOM的脚本或小脚本,避免阻塞页面渲染。
异步加载使用asyncdefer属性,允许脚本异步加载,不阻塞HTML解析。async适用于独立脚本,defer适用于依赖顺序的脚本。
async脚本异步加载并在可用时立即执行,不保证执行顺序。适用于不依赖其他脚本的独立脚本。
defer脚本异步加载但执行顺序与脚本在文档中出现的顺序一致,通常在DOMContentLoaded事件之后执行。适用于依赖DOM或有顺序依赖的脚本。
type="module"将脚本视为JavaScript模块,支持模块化导入和导出。适用于ES6模块的使用。
crossorigin设置CORS(跨源资源共享)策略,用于控制加载资源时的跨域行为。适用于需要跨域加载资源的情况。
integrity用于验证加载的脚本是否被篡改。适用于需要确保资源完整性的场景。
nonce一次性加密值,用于内容安全策略(CSP)中允许特定的内联脚本执行。适用于需要增强安全性的场景。
referrerpolicy控制加载资源时发送的Referer值。适用于需要控制隐私或安全策略的场景。
阻塞解析的JavaScript没有asyncdefertype="module"属性的脚本会在解析时阻塞页面。适用于必须立即执行且不依赖其他脚本的脚本。
模块回落使用nomodule属性为不支持JavaScript模块的浏览器提供回退脚本。渐进增强和兼容性处理。
导入映射使用type="importmap"定义模块标识符的映射,简化模块导入路径。模块化JavaScript项目中简化模块解析。

4.3 布局和样式

术语解释应用场景
CSS布局使用CSS对HTML元素进行布局,包括Flexbox、Grid等技术。响应式设计和页面布局。
流式布局元素依次排列,宽度由内容决定,可适应不同屏幕尺寸。适用于简单的页面布局。
弹性盒子(Flexbox)一种CSS布局模式,用于在不同屏幕尺寸下灵活地排列元素。现代网页设计中常用的布局技术。
网格布局(Grid)一种CSS布局模式,用于创建复杂的二维布局。复杂的页面布局设计。

欢迎各位大佬们讨论指正,希望和大家共同进步💪💪💪

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/488001.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

静态路由与交换机配置实验

1.建立网络拓扑 添加2台计算机&#xff0c;标签名为PC0、PC1&#xff1b;添加2台二层交换机2960&#xff0c;标签名为S0、S1&#xff1b;添加2台路由器2811&#xff0c;标签名为R0、R1&#xff1b;交换机划分的VLAN及端口根据如下拓扑图&#xff0c;使用直通线、DCE串口线连接…

与 Cursor AI 对话编程:2小时开发报修维修微信小程序

本文记录了如何通过与 Cursor AI 对话&#xff0c;全程不写一行代码的情况下&#xff0c;完成一个完整的报修小程序。整个过程展示了 AI 如何帮助我们&#xff1a; 生成代码 、解决问题、优化实现、完善细节。 先看一下效果图&#xff1a; 一、项目配置 首先我是这样和 AI 对…

汽车车牌标记支持YOLO,COCO,VOC三种格式标记,4000张图片的数据集

本数据集支持YOLO&#xff0c;COCO&#xff0c;VOC三种格式标记汽车车牌&#xff0c;无论是新能源汽车还是油车都能识别标记&#xff0c;该数据集一共包含4000张图片 数据集分割 4000总图像数 训练组 70&#xff05; 2800图片 有效集 20&#xff05; 800图片 测…

共享无人系统,便捷生活触手可得

共享无人系统适用各种无人场景:共享麻将室、共享茶室、共享健身房、共享自习室、共享桌球室&#xff0c;实现线上预约&#xff0c;一键预约&#xff0c;自由组合时间&#xff0c;智能通断电&#xff0c;智能语音提醒。 优惠券是常用的营销工具&#xff0c;后台创建之后发放给会…

使用HTML获取商品详情:技术实现与最佳实践

1. 引言 在电子商务领域&#xff0c;获取商品详情是提升用户体验和增强网站功能性的关键。本文将探讨如何使用HTML结合其他技术手段获取商品详情&#xff0c;并展示如何将这些信息有效地呈现给用户。 2. 理解商品详情页面的结构 在开始编码之前&#xff0c;我们需要了解商品…

怎么禁用 vscode 中点击 go 包名时自动打开浏览器跳转到 pkg.go.dev

本文引用怎么禁用 vscode 中点击 go 包名时自动打开浏览器跳转到 pkg.go.dev 在 vscode 设置项中配置 gopls 的 ui.navigation.importShortcut 为 Definition 即可。 "gopls": {"ui.navigation.importShortcut": "Definition" }ui.navigation.i…

从 Zuul 迁移到 Spring Cloud Gateway:一步步实现服务网关的升级

从 Zuul 迁移到 Spring Cloud Gateway&#xff1a;一步步实现服务网关的升级 迁移前的准备工作迁移步骤详解第一步&#xff1a;查看源码第二步&#xff1a;启动类迁移第三步&#xff1a;引入 Gateway 依赖第四步 编写bootstrap.yaml第五步&#xff1a;替换路由配置第六步&#…

【金融贷后】贷后运营精细化管理

文章目录 一、贷后专业术语讲解① 什么是贷后&#xff0c;贷后部是干什么的&#xff1f;② 贷后部门常见组织架构&#xff1f;③ 贷后专业术语有哪些&#xff1f; 二、贷后常用作业手段介绍① 贷后产品形态介绍&#xff1f;② 催收常用的方法&#xff1f; 三、贷后策略岗位介绍…

利用cnocr库完成中文扫描pdf文件的文字识别

很多pdf文件文字识别软件都会收费&#xff0c;免费的网页版可能会带来信息泄露&#xff0c;还有一些类似于腾讯AI和百度AI的接口都有调用次数限制&#xff0c;因此&#xff0c;利用识别正确率极高且免费的cnocr库来自己动手做个pdf文件文字识别程序就是一个很不错的选择。以下程…

论文阅读 -- IDENTIFYING THE RISKS OF LM AGENTS WITHAN LM-EMULATED SANDBOX, ICLR2024

论文链接&#xff1a;https://arxiv.org/pdf/2309.15817 目录 ABSTRACT 1 INTRODUCTION 2 BACKGROUND & PROBLEM STATEMENT 3 CONSTRUCTING TOOLEMU 3.1 EMULATING TOOL EXECUTIONS WITH LANGUAGE MODELS 3.2 DESIGNING AUTOMATIC EVALUATIONS WITH LANGUAGE MODEL…

期末复习-计算机网络篇SCAU

第一章&#xff1a;概述 1.计算机网络的特点&#xff0c;互联网发展的三个阶段 特点&#xff1a;连通性、资源共享 三个阶段&#xff1a; 1969-1990&#xff1a;从单个网络ARPANET向互联网发展 1985-1993&#xff1a;建成了三级结构的互联网 1993-现在&#xff1a;全球范…

TesseractOCR-GUI:基于WPF/C#构建TesseractOCR简单易用的用户界面

前言 前篇文章使用Tesseract进行图片文字识别介绍了如何安装TesseractOCR与TesseractOCR的命令行使用。但在日常使用过程中&#xff0c;命令行使用还是不太方便的&#xff0c;因此今天介绍一下如何使用WPF/C#构建TesseractOCR简单易用的用户界面。 普通用户使用 参照上一篇教…

openGauss开源数据库实战二十一

文章目录 任务二十一 使用JDBC访问openGauss数据库任务目标实施步骤一、准备工作 二、下载并安装JavaSE81 下载JavaSE8安装Java8SE并配置环境变量 三、下载并安装eclipse四、下载并安装openGauss的JDBC驱动包五、使用IDEA编写JDBC测试程序1 使用IDEA的SSH连接虚拟机2 创建项目并…

算法——前缀和

如果我们想要得到数组中一段区间的和最朴素的想法肯定是我们从区间的开始下标遍历到结束下标并累加&#xff0c;但是这显然存在一个问题&#xff0c;时间开销是O&#xff08;n&#xff09;的级别&#xff0c;并且有着大量的重复计算&#xff0c;求[n, m]的和后继续求[n…m…p]区…

可视化建模以及UML期末复习篇----UML图

这是一篇相对较长的文章&#xff0c;如你们所见&#xff0c;比较详细&#xff0c;全长两万字。我不建议你们一次性看完&#xff0c;直接跳目录找你需要的知识点即可。 --------欢迎各位来到我UML国&#xff01; 一、UML图 总共有如下几种&#xff1a; 用例图&#xff08;Use Ca…

Tableau数据可视化与仪表盘搭建

1.Tableau介绍 可视化功能 数据赋能 数据赋能就是将我们的数据看板发布到我们的线上去 这里的IP地址是业务部门可以通过账号密码登入的 我们也可以根据需要下载&#xff0c;选中并点击下载即可 下载下来之后&#xff0c;自己就能根据数据进行自定义的分析 也可以下载图片 还有…

NanoLog起步笔记-7-log解压过程初探

nonolog起步笔记-6-log解压过程初探 再看解压过程建立调试工程修改makefile添加新的launch项 注&#xff1a;重新学习nanolog的README.mdPost-Execution Log Decompressor 下面我们尝试了解&#xff0c;解压的过程&#xff0c;是如何得到文件头部的meta信息的。 再看解压过程 …

设计模式-装饰器模式(结构型)与责任链模式(行为型)对比,以及链式设计

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言1.装饰器模式1.1概念1.2作用1.3应用场景1.4特点1.5类与对象关系1.6实现 2责任链模式2.1概念2.2作用2.3应用场景2.4特点2.5类与对象关系2.6实现 3.对比总结 前言…

llama-factory实战: 基于qwen2.5-7b 手把手实战 自定义数据集清洗 微调

基于qwen2.5 手把手实战 自定义数据集 微调&#xff08;llama-factory&#xff09; 准备工作1.数据集准备&#xff08;例:民法典.txt&#xff09;2.服务器准备&#xff08;阿里云 DSW 白嫖&#xff09;3.环境配置pip 升级模型下载微调助手 4.数据集处理脚本文件4.1文本分割(ber…

day08 接口测试(4)知识点完结!!

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、postman读取外部数据文件&#xff08;参数化&#xff09; 1.1 数据文件简介 1.2 导入外部数据文件 1.2.1 csv文件 1.2.2 导入 json文件 1.3 读取数据文件数据 1.4 案例 1.5 生成测试报告 2、小…