vue3项目结构梳理:

news2024/11/16 23:58:28

 总览

                                

1.vscode文件:

通常用于存放Visual Studio Code编辑器的插件的配置

2.node_moudles文件夹:

这个文件夹包含了项目所需的所有npm依赖包。(需要在根目录下执行npm i命令安装这个文件夹)

或者在项目根目录(package.json的上一级)下执行:npm install命令;它会根据项目根目录下的 package.json 文件中列出的依赖项列表,下载并安装这些依赖包到项目的 node_modules 文件夹中。

1.检查 package.json 文件是否存在,如果不存在则会报错。
2.读取 package.json 文件中的依赖项列表。
3.下载每个依赖项及其所有依赖项(如果有的话)。
4.将下载的依赖项存储在项目的 node_modules 文件夹中(如果没这个文件夹则自动生成)。
5.更新 node_modules 文件夹中的 package-lock.json 文件,以记录确切的版本号和依赖关系。
6.最后,可以在项目中通过 require() 或 import 语句来引用和使用这些依赖项。

3.public文件夹:

这个文件夹用于存放静态资源(不需要经过服务器处理的文件,也就是说:这个文件夹中的资源可以被Web服务器直接提供给用户访问,不需要后端处理的),如图像、字体等。这些资源可以直接通过URL访问,无需经过构建过程。

其中favion.ico文件是小图标,通常显示在浏览器的标签栏。

4.src文件夹:(最重要)

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

这是源代码的主要目录,包含应用程序的所有源代码文件。

1.assets文件夹:

存放静态资源,如图像、字体等

assets文件夹存放内容本身是静态或者经过后端服务器处理过后的返回的静态资源。

而public文件夹存放内容本身是静态资源

2.components文件夹:

存放一般的vue组件(除了路由组件),相当于app.vue文件大树干的小分支)

3.router文件夹:

包含Vue Router的配置,用于管理应用程序的页面导航。

路由项目的思路:

1.确定导航区,展示区

2.npm install vue-router命令安装路由并在main.ts文件中配置好

3.在router文件夹创建一个路由配置文件(如index.ts文件中配置好路由的具体规则

4.对路由组件一个一个实现

一个可能的路由的配置如下:

//创建一个路由器并暴露出去
//第一步:引入createrRouter
import { createRouter ,createWebHistory} from "vue-router";

//引入一个一个要呈现的组件
import home from "@/components/Home.vue"
import news from "@/components/News.vue"
import about from "@/components/About.vue"
//第二步:创建路由器
const router = createRouter({
    history :createWebHistory(),//路由器的工作模式
    routes:[//一个一个的路由规则(路由的配置)
        {path:'/home',
        component:home
        },
        {path:'/news',
        component:news
        },
        {path:'/about',
        component:about
        },
    ]
})
//暴露出去router
export default router

4.stores文件夹:

用于存放Vuex(或者pinia)推荐使用pi的状态管理模块,用于集中管理和共享应用程序的状态。

5.views文件夹

目录用于存放应用程序的页面级组件。每个页面通常由一个 .vue 文件组成,并且通过路由进行导航。

6.app.vue文件 

是应用程序的根组件,它包含了应用程序的整体布局和结构。包含其他组件

7.main.js 文件

用于初始化 Vue3 应用程序和配置一些全局设置。

import './assets/main.css'
//加载并应用main.css文件中定义的样式规则到相应的HTML元素上(例如index.html中的元素引用本文件时候就会在相应的位置调用main.js中的样式)

import { createApp } from 'vue'
//从'vue'模块中导入createApp函数(准备花盆)
import App from './App.vue'
//从当前目录下的App.vue文件中导入一个名为App的Vue组件(花的根部)(其他引入的vue文件可以理解为花的枝叶)

createApp(App).mount('#app')
//createApp函数创建一个Vue应用实例,并将其挂载到HTML文档中的id为app的容器上(把花的根插入花盆里面)

8.utils文件夹: 

mitt使用场景

5..gitignore文件

一个文本文件,内容决定了哪些文件和文件夹不会被提交到代码仓库。

用于告诉Git哪些文件或目录不应该被纳入版本控制系统(即不会纳入代码库)。

6.env.d.ts: 文件

是用来定义 TypeScript 项目中需要用到的环境变量的类型(理解:这个文件可以给ts变量中的类型起别名,并且可以修改某些变量的作用域)

(初始的vue3项目中的env.d.ts文件的作用是让ts"认识".txt,.jpg等文件)

7.index.html文件

应用程序入口文件(vite和webpack的区别之一),Vue应用将挂载于此文件中的特定元素上

8.package-lock.json文件

包含了项目所需的所有依赖包及其精确的版本号。

(通过npm install命令安装依赖包)

npm install vue-router
//安装vue-router依赖包,之后可以在组件中配置相应的依赖包

这样就是在package-lock.json文件中自动生成相应的依赖包的信息

之后:

在Vue组件或其他JavaScript文件中,通过import语句导入所需的依赖包。例如,要导入vue-router并将其添加到Vue应用程序中,可以在main.js文件中添加以下代码:

import { createRouter, createWebHistory } from 'vue-router';

const router = createRouter({
  // 定义路由规则和组件映射
});

createApp(App).use(router).mount('#app');

9.package.json 文件

是Node.js 项目的配置文件,其中包含了项目的元数据和依赖信息。您可以在其中配置脚本、安装依赖、指定启动命令等。

10.README.md文件

Markdown格式的文本文件,对项目的介绍

11.tsconfig.app.json文件,tsconfig.json文件,tsconfig.node.json文件

TypeScript编译器的配置文件

12.hooks文件夹:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

hooks文件夹(src目录下)通常用于存放自定义的Hooks函数,这些函数可以在Vue组件中导入和使用,以实现代码的复用和组织。(可以理解把ts中的代码逻辑给封装了)。

函数式编程思想:Hooks将这些逻辑封装成一个可复用的函数,避免代码重复,提高代码的复用性。

命名规范:自定义Hooks应该以“use”为前缀。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习论文: SAM 2: Segment Anything in Images and Videos

深度学习论文: SAM 2: Segment Anything in Images and Videos SAM 2: Segment Anything in Images and Videos PDF:https://ai.meta.com/research/publications/sam-2-segment-anything-in-images-and-videos/ PyTorch: https://github.com/shanglianlm0525/PyTorch-Networks …

前端开发不得不知道的那些事

文章目录 一、技能提升篇vueuseJavaScript中文网JavaScript.infoRxJsWeb安全学习书栈网码农之家 二、UI篇iconfont:阿里巴巴矢量图标库IconPark3dicons美叶UndrawError 404摹克 三、CSS篇You-need-to-know-cssCSS TricksAnimate.cssCSS ScanCSS Filter 四、颜色篇中…

滑模变结构控制仿真实例(s-function代码详解)

目录 一、建立系统数学模型二、控制器设计1. 设计滑模面(切换面)2.设计控制器 u3. 稳定性证明 三、 Matlab 仿真1. s-function 模型2. 主要代码3. 仿真结果(采用符号函数sign(s))4. 仿真结果(采用饱和函数sat(s)) 一、建立系统数学模型 { x ˙ 1 x 2 x ˙ 2 x 3 x ˙ 3 x 1 …

vue3中Cesium离线地图

最近的需求需要在vue3发布Cesium离线地图,之前openlayers我是在本地开启http server发布的地址可以使用,但是Cesium会报跨域错误,在网上查了一下,后用的是nginx代理,下面我记录一下自己的方法。 1.判断是否联网 expo…

Linux、Windows、Mac 系统安装 Nginx 及配置命令全攻略

一、Linux 系统安装 Nginx 及配置 (一)安装依赖包 在 Linux 系统中安装 Nginx 前,首先需要安装依赖包。以下是常见的依赖包安装命令: yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 若安装过程中出现错…

力扣高频SQL 50题(基础版)第三十二题

文章目录 力扣高频SQL 50题(基础版)第三十二题1789.员工的直属部门题目说明实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第三十二题 1789.员工的直属部门 题目说明 表:Employee ------------------…

Yolov8训练时正常,但验证时Cuda out of memory问题的解决方案(非完全解决)

【问题描述】 在Yolov8训练时,训练中正常,但每轮训练中做验证时报错Cuda out of memory: 【解决方案】 往下翻有具体的报错信息: 可知是显存爆了。在没有条件更换训练显卡的情况下,笔者尝试增加with torch.no_grad…

TiDB Hackathon 2024丨用 TiDB 构建未来的 AI 创新应用, 瓜分超 ¥210,000 奖金池!

2024 TiDB Future App Hackathon 来啦!这是第八届 TiDB Hackathon,TiDB Hackathon 自举办以来,已累计参赛人数超过 3000 人 !回顾去年的 TiDB Hackathon 赛事,有来自 88 个国家近 1500 名小伙伴参加,提交了…

IDEA某个项目被同事提交的代码导致不能进入Debug了,不是IDEA的问题。千万要避坑!

刚开始我发现突然不能进入debug了,打上去后就立马边灰了,我以为是我IDEA的问题,后来我换了其他项目都能正常进入debug. 而且后续,这个项目的其他同事也都不能进入debug了。 我就怀疑是项目中有人提交了代码导致的。 后来查…

必备插件自取 vue3.0 在vscode提升编码效率

一些vue开发中用到的插件,抽空总结一下,一是方便自己查看,另外是供其他需要的同学参考。在开发vue项目中,无论用什么编辑器一些好用的插件对我们来讲或许是必要的,因为好的插件既能方便我们编码,又能提升开…

文件解析漏洞--IIS--Vulhub

文件解析漏洞 一、IIS解析漏洞 用windowserver2003安装IIS测试 1.1 IIS6.X 方法一:目录解析 在网站下建立文件夹的名字为.asp/.asa的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。 1.txt文件里是asp文件的语法查看当前时间 方…

PSO求解函数最小值的MATLAB例程|MATLAB源代码

本篇文章适合PSO入门,进阶的可能会觉得太简单的。 目录 PSO例程作用运行结果代码函数解释 例程修改tips PSO Particle Swarm Optimization,粒子群优化算法,通过模拟鸟群或鱼群的行为来寻找最优解。在计算时通过对一群粒子的位置和速度进行迭…

Stable Diffusion Windows本地部署超详细教程(手动+自动+整合包三种方式)

2022年作为AIGC(Artificial Intelligence Generated Content)时代的元年,各个领域的AIGC技术都有一个迅猛的发展,给工业界、学术界、投资界甚至竞赛界都注入了新的“AI活力”与“AI势能”。 其中在AI绘画领域,Stable D…

内部类练习题

代码: public static void main(String[] args) {A anew A();a.f(); } class A{private String name"A";public void f(){class B{private String name"B";public void show(){System.out.println("A姓名为:"A.this.name…

智慧校园实训管理:打造高效实验项目管理系统

在智慧校园的实训管理框架中,实验项目管理功能是培养学生实践能力和创新精神的关键一环。这一功能通过数字化手段,实现了实验项目的全流程管理,从项目设计、资源调配、过程监控到成果评估,确保了实训活动的高效开展和教学质量的稳…

LabVIEW打开的视频格式IMAQ AVI Open

LabVIEW打开的视频格式IMAQ AVI Open LabVIEW所支持的视频解码器是有限的,不能支持所有的视频解码器。如果解码器选择的不正确,会出现的错误。 错误提示信息如下: Error -1074396009 occurred at IMAQ AVI Open Possible reason(s): An inter…

人工智能大模型发展带来的风险挑战和对策

经过近70年的发展,人工智能技术发展经历了三次起伏,2022年以来,以ChatGPT、Sora等为代表的预训练大模型持续取得突破,推动着人工智能技术从感知向认识,从分析判断式向生成式,从专用向通用进入快速发展的新阶…

提供一个下载国外DockerHub镜像的办法

由于众所周知的一些问题,国内现在下载国外的镜像比较难。尤其是比较新的版本的时候。 比如阿里云加速器的镜像库,skywalking-oap的最新版本也只有8.9,有时候不满足业务需要。官网目前最新10.0.1。很多情况下我们需要9以上版本。 提供几个办…

tomcat使用问题:安装后无法访问localhost:8080

一、tomcat 未启动 所以http://localhost:8080打不开; 二、环境变量未配置 tomcat图标显示已启动,但http://localhost:8080还是打不开,可能是环境变量没有配置好,关于怎么配置环境变量网上到处都是,一下仅供参考: …

halcon_C#联合halcon打开摄像头

1. 创建halcon项目 -> 2.测试连接 -> 3. 在halcon中打开摄像头成功 -> 4. 插入代码 -> 5. 导出为.cs文件 6. 创建VS项目 -> 7.将action部分代码嵌入winform -> 8. 编写代码 -> // 导入HalconDotNet命名空间,这是用于Halcon图像处理的…