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布局模式,用于创建复杂的二维布局。复杂的页面布局设计。

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【优选算法-滑动窗口】长度最小的子数组、无重复字符的最长子串、最大连续1的个数、将x减为0的最小操作数、水果成篮

一、长度最小的子数组 题目链接&#xff1a; 209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 题目介绍&#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, .…

appium学习之二:adb命令

1、查看设备 adb devices 2、连接 adb connect IP:端口 3、安装 adb install xxx.apk 4、卸载 adb uninstall 【包名】 5、把对应目录下的1.txt文件传到手机sdcard下 adb push 1.txt /sdcard 6、进入对应的设备里 adb shell 7、切入sdcard目录 cd /sdcard 8、ls 查…

算法——差分

差分可以看作是前缀和的逆运算&#xff0c;前缀和可以帮我们快速得到某个区间的和&#xff0c;而差分就是我们将原数组看作是一个前缀和数组&#xff08;q[]&#xff09;我们去构造一个差分数组&#xff08;c[]&#xff09; 一维差分 使存在如下关系&#xff1a; q[i] c[1]…

使用 EasyExcel 提升 Excel 处理效率

目录 前言1. EasyExcel 的优点2. EasyExcel 的功能3. 在项目中使用 EasyExcel3.1 引入依赖3.2 实体类的定义与注解3.3 工具类方法的实现3.4 在 Controller 中使用 4. 总结5. 参考地址 前言 在日常开发中&#xff0c;Excel 文件的处理是不可避免的一项任务&#xff0c;特别是在…

健康管理系统(Koa+Vue3)

系统界面(源码末尾获取) 系统技术 Vue3 Koa Nodejs Html Css Js ....... 系统介绍 系统比较简单,轻轻松松面对结业课堂作业.采用的是基于nodejs开发的Koa框架作为后端,采用Vue框架作为前端,完成快速开发和界面展示. 系统获取 啊啊啊宝/KoaVue3https://gitee.com/ah-ah-b…

python进阶-05-利用Selenium来实现动态爬虫

python进阶-05-利用Selenium来实现动态爬虫 一.说明 这是python进阶部分05&#xff0c;我们上一篇文章学习了Scrapy来爬取网站&#xff0c;但是很多网站需要登录才能爬取有用的信息&#xff0c;或者网站的静态部分是一个空壳&#xff0c;内容是js动态加载的,或者人机验证&…

day10性能测试(2)——Jmeter

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、LoadRunner vs Jmeter 1.1 LoadRunner 1.2 Jmeter 1.3 对比小结 2、Jmeter 环境安装 2.1 安装jdk 2.2 安装Jmeter 2.3 小结 3、Jmeter 文件目录结构 4、Jmeter默认配置修改 5、Jmeter元件、组…

架构15-服务网格

零、文章目录 架构15-服务网格 1、透明通信的涅槃 &#xff08;1&#xff09;服务网格 概念 服务网格是一种处理程序间通信的基础设施&#xff0c;主要由数据平面和控制平面组成。它通过边车代理和控制程序管理程序间的通信&#xff0c;弥补了容器编排系统对分布式应用细粒…

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、小…

2024年11月HarmonyOS应用开发者高级认证全新题库

注意事项&#xff1a;切记在考试之外的设备上打开题库进行搜索&#xff0c;防止切屏三次考试自动结束&#xff0c;题目是乱序&#xff0c;每次考试&#xff0c;选项的顺序都不同&#xff0c;作者已于2024年11月22日又更新了一波题库&#xff0c;题库正确率99%&#xff01; 新版…

【Python网络爬虫 常见问题汇总】

目录 1. 爬取图片出现403解决办法&#xff1a;设置请求头中的Referer字段 2.关于干坏事的问题后续不定期更新 欢迎共同探讨学习进步 1. 爬取图片出现403 问题出自案例9&#xff0c;已解决。 【Python网络爬虫笔记】9- 抓取优美图库高清壁纸 当在爬取图库图片时遇到 403 错误…

《探索形象克隆:科技与未来的奇妙融合》

目录 一、什么是形象克隆 二、形象克隆的技术原理 三、形象克隆的发展现状 四、形象克隆的未来趋势 五、形象克隆的应用场景 六、形象克隆简单代码案例 Python 实现数字人形象克隆 Scratch 实现角色克隆效果&#xff08;以猫为例&#xff09; JavaScript 实现 Scratc…

Mac软件推荐

Mac软件推荐 截图SnipasteXnipBob 快捷启动Raycast 系统检测Stats 解压缩The UnarchiverKeka&#xff08;付费&#xff09; 视频播放IINA 视频下载Downie&#xff08;付费&#xff09; 屏幕刘海TopNotchMediaMate&#xff08;付费&#xff09;NotchDrop&#xff08;付费&#x…

Linux——linux系统移植

创建VSCode工程 1、将NXP官方的linux内核拷贝到Ubuntu 2、解压缩tar -vxjf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 NXP官方开发板Linux内核编译 1、将.vscode文件夹复制到NXP官网linux工程中&#xff0c;屏蔽一些不需要的文件 2、编译NXP官方EVK开发板对应的Linux系统…

TikTok运营选什么网络?要用原生IP吗?

不管是跨境电商运营还是个人IP打造&#xff0c;TikTok都是必不可少的一个大流量平台。但运营TikTok必然要面临网络问题&#xff0c;如果没有妥当的解决方案&#xff0c;不仅难以获取流量&#xff0c;还可能面临封号的风险。因此&#xff0c;选择可靠的网络并合理使用是非常重要…

Spring 基础

什么是 Spring 框架? Spring 是一款开源的轻量级 Java 开发框架&#xff0c;旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说 Spring 框架指的都是 Spring Framework&#xff0c;它是很多模块的集合&#xff0c;使用这些模块可以很方便地协助我们进行开发&#…

Redis篇-5--原理篇4--Lua脚本

1、概述 Redis 支持使用 Lua 脚本来执行复杂的操作&#xff0c;这为 Redis 提供了更强的灵活性和性能优化能力。通过 Lua 脚本&#xff0c;你可以在服务器端执行一系列命令&#xff0c;而不需要多次往返客户端与服务器之间&#xff0c;从而减少了网络延迟并提高了效率。此外&a…

【数据库】关系代数和SQL语句

一 对于教学数据库的三个基本表 学生S(S#,SNAME,AGE,SEX) 学习SC(S#,C#,GRADE) 课程(C#,CNAME,TEACHER) &#xff08;1&#xff09;试用关系代数表达式和SQL语句表示&#xff1a;检索WANG同学不学的课程号 select C# from C where C# not in(select C# from SCwhere S# in…

【git】--- 通过 git 和 gitolite 管理单仓库的 SDK

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。【git】--- 通过 git 和 gitolite 管理单仓库的 SDK 开发环境一、安装配置 gitolite二…

HDFS高可用模式安装部署

实验步骤 将ZooKeeper集群模式启动获取安装包 安装包在本地&#xff1a;通过XFTP等工具将安装包上传到虚拟机中安装包在网络&#xff1a; 虚拟机可以访问互联网虚拟机无法访问互联网解压缩安装包将解压出来安装目录重命名配置环境变量刷新环境变量&#xff0c;使新增的环境变量…