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)
架构库
插件库