ssts-hospital-web-master项目实战记录十二:项目迁移-架构设计(架构库、插件库)
记录时间:2024-02-24
一、准备工作
【使用“文心一言”搜索vite项目设计文件结构】
在Vite项目中设计TypeScript文件结构时,你希望确保代码的组织是模块化的、易于维护的,并且遵循最佳实践。以下是一个适用于Vite和TypeScript项目的文件结构示例:
| my-vite-project/ | |
| ├── index.html # 项目入口HTML文件 | |
| ├── package.json # 项目依赖和配置 | |
| ├── tsconfig.json # TypeScript配置文件 | |
| ├── vite.config.ts # Vite配置文件 | |
| ├── src/ # 项目源代码目录 | |
| │ ├── assets/ # 静态资源目录(如图片、字体等) | |
| │ ├── components/ # Vue组件目录 | |
| │ │ ├── Buttons/ # Button组件的子目录 | |
| │ │ │ ├── PrimaryButton.tsx # 主按钮组件 | |
| │ │ │ └── SecondaryButton.tsx # 次按钮组件 | |
| │ │ ├── Layouts/ # 布局组件子目录 | |
| │ │ │ ├── DefaultLayout.tsx # 默认布局组件 | |
| │ │ │ └── SidebarLayout.tsx # 侧边栏布局组件 | |
| │ │ └── index.ts # 导出所有组件 | |
| │ ├── hooks/ # React Hooks目录 | |
| │ │ ├── useAuth.ts # 身份验证Hook | |
| │ │ └── index.ts # 导出所有Hooks | |
| │ ├── stores/ # 状态管理目录(例如使用Pinia) | |
| │ │ ├── userStore.ts # 用户状态管理 | |
| │ │ └── index.ts # 导出所有stores | |
| │ ├── services/ # 后端服务或API调用目录 | |
| │ │ ├── auth.ts # 身份验证服务 | |
| │ │ └── index.ts # 导出所有服务 | |
| │ ├── types/ # 类型定义目录 | |
| │ │ ├── customTypes.ts # 自定义类型定义 | |
| │ │ └── index.ts # 导出所有类型定义 | |
| │ ├── utils/ # 工具函数目录 | |
| │ │ ├── helpers.ts # 通用帮助函数 | |
| │ │ └── index.ts # 导出所有工具函数 | |
| │ ├── views/ # 页面视图目录 | |
| │ │ ├── HomeView.tsx # 首页视图 | |
| │ │ ├── AboutView.tsx # 关于页面视图 | |
| │ │ └── index.ts # 导出所有视图 | |
| │ ├── App.tsx # 项目根组件 | |
| │ ├── main.ts # 应用的入口文件 | |
| │ └── theme.ts # 主题和样式变量 | |
| ├── .env # 环境变量文件 | |
| └── .eslintrc.js # ESLint配置文件(可选) |
在这个结构中:
components目录包含Vue组件,按照功能或布局进行分组。hooks目录包含React Hooks,这些是可复用的状态逻辑。stores目录用于状态管理,例如使用Pinia来管理Vue应用的状态。services目录包含与后端交互的服务或API调用。types目录包含自定义的类型定义,以便在项目中重复使用。utils目录包含工具函数和辅助函数。views目录包含页面视图组件,这些组件通常与路由关联。App.tsx是项目的根组件文件,通常包含应用的顶级逻辑和样式。main.ts是应用的入口文件,负责初始化应用、设置Vue实例等。theme.ts是一个可选文件,用于定义全局的主题和样式变量。
请注意,这个结构并不是唯一的,也不适用于所有项目。根据你的项目需求、团队约定和所使用的库或框架,你可能需要调整或扩展这个结构。例如,如果你使用的是Vue 3而不是React,你可能不需要hooks目录,而是需要更多的Vue相关的目录和文件。最重要的是确保你的代码结构能够清晰地反映你的应用逻辑,并且便于维护。
【使用“文心一言”搜索说明Vite构建Vue项目设计文件结构】
Vite是一个由Vue.js的创建者Evan You开发的现代前端构建工具,它原生支持Vue,并且利用了ES模块导入(ESM)来提供极速的更新和启动速度。下面是对Vite构建Vue项目设计文件结构的说明:
项目根目录:
index.html: 项目的入口HTML文件,通常包含了对main.js或main.ts的引用。package.json: 项目的npm依赖管理文件,包含项目所需的依赖和脚本命令。tsconfig.json: TypeScript编译器配置文件,如果项目使用TypeScript编写。vite.config.ts或vite.config.js: Vite项目的配置文件,用于定制Vite的行为。.env,.env.development,.env.production: 环境变量文件,用于存储不同环境下的配置信息。.eslintrc.js: ESLint配置文件,用于代码质量和风格检查。.prettierrc: Prettier配置文件,用于代码格式化。
源代码目录 (src):
assets/: 存放静态资源文件,如图片、字体、SVG等。components/: Vue组件目录,通常按照原子设计(Atomic Design)原则划分为atoms、molecules、organisms和templates。atoms/: 最小、不可再分的组件,如按钮、图标等。molecules/: 由原子组件组合而成的组件,如卡片、表单等。organisms/: 由多个分子组件组成的较大组件,如页眉、页脚等。templates/: 由多个组织组件组成的页面布局或模板。
hooks/: 存放自定义的Vue Composition API Hooks。stores/: Vuex状态管理目录,如果项目使用Vuex进行状态管理。views/: 存放页面组件,通常与路由配置相对应。App.vue: 根组件,通常包含全局样式和路由配置。main.ts或main.js: 项目的入口文件,用于初始化Vue应用并挂载到DOM上。router/: 路由配置目录,如果项目使用Vue Router进行路由管理。store.ts或store.js: Vuex状态管理入口文件,如果不使用模块化配置。types.ts: 全局类型定义文件,用于定义项目中使用的自定义类型。utils/: 工具函数目录,存放一些辅助函数或工具库。
静态资源目录 (public):
- 通常存放不需要经过Vite处理的静态资源文件,如
favicon.ico、robots.txt等。
测试目录 (tests):
- 如果项目包含单元测试或集成测试,通常会在此目录下按照组件结构进行组织。
此外,Vite还提供了一个public目录,用于存放不需要经过Vite处理的静态资源。这些资源可以直接通过路径访问。
整体来看,Vite构建Vue项目的文件结构遵循了模块化、组件化和原子设计的原则,使得项目结构清晰、易于维护和扩展。同时,通过使用Vite提供的特性(如HMR、ESM等),可以大大提高开发效率和体验。
【使用“文心一言”搜索说明Vite构建Vue项目设计文件结构,添加包含ts文件的framework目录】
在Vite构建的Vue项目中,如果添加了一个包含TypeScript文件(.ts)的framework目录,这个目录的结构和用途可能会有所不同,但通常它会被用作存放与项目框架或库相关的TypeScript代码和类型定义。
以下是包含framework目录的Vite构建Vue项目的文件结构示例:
| my-vue-project/ | |
| ├── index.html | |
| ├── package.json | |
| ├── vite.config.ts | |
| ├── tsconfig.json | |
| ├── .env | |
| ├── .env.development | |
| ├── .env.production | |
| ├── src/ | |
| │ ├── assets/ | |
| │ ├── components/ | |
| │ ├── hooks/ | |
| │ ├── stores/ | |
| │ ├── views/ | |
| │ ├── App.vue | |
| │ ├── main.ts | |
| │ ├── router/ | |
| │ └── types.ts | |
| ├── public/ | |
| │ ├── favicon.ico | |
| │ └── ... | |
| ├── tests/ | |
| │ └── ... | |
| └── framework/ | |
| ├── components/ | |
| │ ├── MyFrameworkComponent.vue | |
| │ ├── AnotherComponent.vue | |
| │ └── index.ts | |
| ├── hooks/ | |
| │ ├── useFrameworkHook.ts | |
| │ └── index.ts | |
| ├── types/ | |
| │ ├── componentProps.ts | |
| │ └── index.ts | |
| ├── utils/ | |
| │ ├── frameworkUtil.ts | |
| │ └── index.ts | |
| ├── index.ts | |
| └── framework.d.ts |
在这个结构中,framework目录包含了以下子目录和文件:
- components/: 存放与框架相关的Vue组件。
- hooks/: 存放与框架相关的自定义Composition API Hooks。
- types/: 存放与框架相关的TypeScript类型定义文件。
- utils/: 存放与框架相关的实用工具函数。
- index.ts: 作为
framework目录的入口文件,可能用于导出目录中的所有公共API或组件。 - framework.d.ts: 全局类型定义文件,用于定义框架特有的类型或在项目中全局可用的类型。
这些TypeScript文件(.ts)可能包含框架特定的逻辑、API、类型定义或实用工具函数,它们对于项目的其他部分是可用的,并且可以被导入和使用。
通过在framework目录中编写TypeScript代码,项目可以获得类型安全性和自动补全等IDE功能的好处,从而提高代码的可读性和可维护性。同时,这也便于在项目中管理和组织与特定框架或库相关的代码。
二、架构重构说明
架构库
common.js
1.jQuery、兼容支持,作废

2.扩展内置对象的原型,作废



3.常用处理函数
作废:$.format、forbidBackSpace、UrlDecode、QuerySting
utils/convert-util.ts:StringToAscii、ASCIIToString
ManageInner.js
$、对话框函数
全部作废

web.common.js
1.获取页面信息
全部作废

2.函数
utils/log-local.ts:全部

3.记录到服务端日志
utils/log-serve.ts:全部

4.数据库查询
全部作废

5.获取配置文件配置
utils/config-util.ts:全部

web.logDB.js
utils/log-db.ts:全部

web.master.js
master/index.ts:全部

web.object.js
object-info/index.ts:全部

web.system.js
1.作废:GetBusinessDir、$().ready
2.函数定义(空)
待评估

3.倒计时操作
utils/page-time-util.ts:全部

4.跳转页面
utils/go-page-util.ts:全部

5.页面弹框
utils/page-alert-util.ts:全部

5.流程操作
utils/go-flow-util.ts:全部

6.system对象
system/index.ts:全部
6.1.系统自适应样式

6.2.系统数据

6.3.系统数据操作

6.4.系统函数
6.4.1.系统终端操作(业务功能)

6.4.2.系统日志操作

6.4.3.系统终端操作(前台管理)

6.4.4.系统用户查询

6.4.5.通用处理函数


插件库
待评估

三、文件目录结构对比
1、Html项目js文件目录结构(VS2015)
架构库+插件库

2、Vue项目ts文件目录结构(VS Code)
架构库

插件库

浙公网安备 33010602011771号