vue3项目结构梳理:

 总览

                                

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://xiahunao.cn/news/3280843.html

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

相关文章

postgresql密码复杂度验证和有效期

前言 为了数据库安全以及应对等保测评等要求,我们需要设置密码复杂度。我们通过passwordcheck模块实现复杂度检测功能。 启用密码复杂度验证 找到自己安装pg库的配置文件目录,修改postgresql.conf vim postgresql.conf修改如下内容 shared_preload_…

中国十大顶级哲学家,全球公认的伟大思想家颜廷利:人类为何拥有臀部

人类为何拥有臀部?若众生皆无此部位,又如何能寻得一处真正属于自己的“座位”?在博大精深的中国传统文化中,汉字“座”与“坐”均蕴含“土”字元素。在易经的智慧里,作为五行之一的“土”,象征着人类社会的…

MySQL8--用户与权限管理

原文网址:MySQL8--用户与权限管理_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍MySQL8的用户与权限的管理,包括:用户的创建与删除、授权与撤销权限等。 为什么要管理用户与权限? 目的是保证数据库的安全性,只授…

Unity Shader unity文档学习笔记(十八):unity雾效原理

看很多文章用近平面远平面组成矩阵后转到裁剪空间下通过Z值来解,实际更简单的方式可以直接通过判断距离来实现 FogMgr控制远近面 public class TestFog : MonoBehaviour {public int startDis 0;public int endDis 50;public Vector4 fogParam;public void Awak…

文件未保存后能否恢复?分享实用恢复指南,6个方法

在日常用电脑时文件未保存而导致的数据丢失,是许多人都会遭遇的棘手问题。那么面对这样的情况,文件真的能够恢复吗?本文将深入分析文件恢复的可能性,并提供一系列实用的建议。 一、了解文件恢复的基础 首先我们需要明白文件恢复并…

并发--快速查询死锁信息

使用jstack查看线程堆栈信息 jstack:jdk提供的一个工具,可以查看java进程中线程堆栈信息。 位于:jdk1.8.0_121\bin包下 死锁代码 public class DeadLockDemo {private static String A "A";private static String B "B"…

uniapp微信小程序本地和真机调试文件图片上传成功但体验版不成功

文章目录 导文是因为要添加服务器域名! 导文 uniapp微信小程序本地和真机调试文件图片上传成功但体验版不成功 uniapp微信小程序体验版上传图片不成功 微信小程序本地和真机调试文件图片上传成功但体验版不成功 是因为要添加服务器域名! 先看一下 你小程…

[Docker][Docker Image]详细讲解

目录 1.Docker镜像是什么?2.Docker镜像加载原理1.bootfs2.rootfs3.为什么CentOS镜像几个G,而Docker CentOS镜像才几百M?1.CentOS2.Docker CentOS 3.镜像分层1.Union FS2.分层理解3.容器层 vs 镜像层 4.镜像命令1.docker images2.docker image…

fusetech_plus项目问题解决(若依魔改系列)

首页一直出现这个问题解决,是因为访问入口都在admin模块,所以必须在admin的pom里 引入blog模块 template might not exist or might not be accessible by any of the configured Template Resolvers 这个问题 类似mapper找不到问题 路径不对&#xf…

Android Compose 中的 UI 状态魔法:优雅处理加载、空状态和数据展示

Android Compose 中的 UI 状态魔法:优雅处理加载、空状态和数据展示 在Jetpack Compose中处理UI界面状态的这种情况,我们可以使用一个密封类(sealed class)来表示不同的UI状态,然后根据状态来显示相应的UI。以下是一个实现这种功能的示例: 首先,定义一个表示UI状态的密…

Selenium与WebDriver:Errno 8 Exec格式错误的多种解决方案

概述 在使用Selenium和WebDriver进行网页自动化时,可能会遇到各种错误。其中一个常见问题是执行格式错误(Errno 8 Exec format error)。这个错误通常在运行ChromeDriver时出现,错误提示涉及路径中的某个文件,如THIRD_…

什么是三级管?怎么区分PNP和NPN两种?

1.什么是三极管? 三极管,全称应为半导体三极管,也称双极型晶体管、晶体三极管,是一种控制电流的半导体器件。其作用是把微弱信号放大成幅度值较大的电信号,也用作无触点开关。三极管是半导体基本元器件之一&#xff0…

qiankun 微前端 隔离子应用样式,解决 ant-design-vue 子应用样式污染问题(已落地)

样式冲突产生原因 先分析乾坤qiankun 构建之后,会根据你的配置 给每个子应用生成一个id, 当加载到对应子应用的时候,就把内容放到对应的id 标签里去, 这样能有效的隔离 js 代码,但是样式是加载在全局的 所以 当两个子…

080基于ssm+vue的大学生兼职信息系统

开发语言:Java框架:ssmJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.…

matlab仿真 信道编码和交织(上)

(内容源自详解MATLAB/SIMULINK 通信系统建模与仿真 刘学勇编著第八章内容,有兴趣的读者请阅读原书) ​​​ ​ ​ ​ clear all N10;%信息比特的行数 n7;%hamming码组长度n2^m-1 m3;%监督位长度 [H,G]hammgen(m);%产生(n,n-…

ai写作一键生成软件有哪些免费的网站推荐

AI写作助手大揭秘!1秒提升创作力,高效出文秘籍! 在这个信息爆炸的时代,每个人都可以成为信息的发布者。 不论是个人博客、社交媒体更新,还是学术文章、企业报告,写作无处不在。 然而,高质量的…

产品升级!抗性宏基因组又增添新成员:毒力基因VFDB-2024版

凌恩明星产品 抗性宏基因组 内容又增加啦! 注释数据库增添新成员—— 毒力因子VFDB注释-2024版 VFDB数据库全称为Virulence Factors of Pathogenic Bacteria,用于专门研究致病细菌、衣原体和支原体致病因子的数据库。来源于微生物,并对微…

C语言指针·入门用法超详解

目录 1. 什么是指针 2. 指针变量的定义格式 3. 指针的作用 3.1 查询数据 3.2 存储数据(修改数据) 3.3 操作其他函数中的变量 3.4 函数返回多个值 3.5 函数的结果和计算状态分开 1. 什么是指针 通过内存地址,指向的空间&#…

终端pip安装包后,Pycharm却导入失败?新手别慌,3招搞定!

很多小伙伴在学习Python的过程中,都会遇到这种情况:明明在终端用pip安装好了需要的包,但在Pycharm中导入时却报错。难道是安装姿势不对? 例如在cmd中已经有了pandas,但是去pycharm中导入pandas显示没有 先别急着怀疑人生,这很可能是因为pip安装包的路径和Pycharm项目使用…

数据结构之八大排序(上)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 目录 排序的相关介绍 直接插入排序 希尔排序(缩小增量排序) 选择排序 …