WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2025-03-06 10c2943ace02967328193df489d5fda1c3d0422e
文档使用 vscode 组件 Markdown All in One 重新格式,并添加目录
5 files modified
122 ■■■■ changed files
@framework/101-工程介绍.md 23 ●●●● patch | view | raw | blame | history
@framework/102-开发规范.md 29 ●●●●● patch | view | raw | blame | history
@framework/201-请求层基类Fetcher.md 32 ●●●●● patch | view | raw | blame | history
@framework/202-数据控制层基类Pilot.md 25 ●●●● patch | view | raw | blame | history
@framework/210-公共工具箱Tools.md 13 ●●●●● patch | view | raw | blame | history
@framework/101-工程介绍.md
@@ -1,6 +1,25 @@
# 工程介绍
这是一个编程项目,用于移动端网页开发
- [工程介绍](#工程介绍)
  - [工程介绍](#工程介绍-1)
  - [技术栈](#技术栈)
  - [工程目录结构](#工程目录结构)
    - [短路径映射](#短路径映射)
  - [页面构成](#页面构成)
    - [页面拆分](#页面拆分)
      - [数据控制层写法](#数据控制层写法)
  - [新页面示例](#新页面示例)
    - [界面层](#界面层)
      - [H5 空白界面示例](#h5-空白界面示例)
      - [小程序空白界面示例](#小程序空白界面示例)
      - [空白样式文件示例](#空白样式文件示例)
    - [数据控制层](#数据控制层)
      - [空白数据控制层示例](#空白数据控制层示例)
      - [空白请求层示例](#空白请求层示例)
## 工程介绍
这是一套Web前端开发的工程文档,用于指导移动端(H5网页、混合App、小程序等)的开发
## 技术栈
@@ -8,8 +27,6 @@
*   工程框架:Taro(v3.2.13)
*   显示框架:Taro-UI-Vue(v1.0.0-beta.10)
*   样式:Sass
*   相关插件
    -   时间插件:moment(v2.29.1)
说明:使用时,优先使用公共组件库的组件,其次是 Taro-UI-Vue 的组件,最后才是 Taro 本身的基础组件
@framework/102-开发规范.md
@@ -1,10 +1,35 @@
# 开发规范
- [开发规范](#开发规范)
  - [规范宗旨](#规范宗旨)
  - [命名问题](#命名问题)
    - [命名需要具有实义](#命名需要具有实义)
    - [文件命名](#文件命名)
      - [界面层文件](#界面层文件)
      - [数据控制层文件](#数据控制层文件)
      - [组件文件](#组件文件)
      - [请求文件](#请求文件)
    - [样式命名](#样式命名)
      - [界面样式](#界面样式)
      - [组件样式](#组件样式)
    - [JS 变量和属性的命名](#js-变量和属性的命名)
      - [变量命名的特别约定](#变量命名的特别约定)
    - [JS 方法的命名](#js-方法的命名)
      - [在数据控制层](#在数据控制层)
      - [在组件内](#在组件内)
  - [书写问题](#书写问题)
    - [JS 中的书写](#js-中的书写)
      - [变量定义符](#变量定义符)
      - [模版中的函数调用](#模版中的函数调用)
    - [CSS 属性顺序](#css-属性顺序)
## 规范宗旨
**代码首先是给人读的,其次才是给机器运行**,所以让代码容易阅读是应尽的责任
除了尽可能不写难懂的代码外,我们还需要尽量遵守统一的规范,来帮助我们更高效率的相互阅读代码
## 命名
## 命名问题
### 命名需要具有实义
@@ -275,7 +300,7 @@
}
```
## 书写
## 书写问题
书写规则都由编辑器自动格式化即可,这里主要说明非格式化的几点约定
@framework/201-请求层基类Fetcher.md
@@ -1,5 +1,18 @@
# 请求层基类 Fetcher.js
- [请求层基类 Fetcher.js](#请求层基类-fetcherjs)
  - [功能说明](#功能说明)
  - [引用方法](#引用方法)
  - [构造函数](#构造函数)
  - [主要方法](#主要方法)
  - [响应处理](#响应处理)
    - [处理流程](#处理流程)
    - [前端统一响应数据格式](#前端统一响应数据格式)
    - [前端统一响应状态码](#前端统一响应状态码)
  - [请求调用](#请求调用)
## 功能说明
类 Fetcher 是一个用于处理 HTTP 请求的基类,包含了多种方法来简化和统一请求的处理,请求层的每个请求集,都必须继承此类
## 引用方法
@@ -147,19 +160,18 @@
### 前端统一响应状态码
| 状态码 | 意义 |
|---|---|
| 2000  | 通用请求成功 |
| 2001  | 请求成功,但是没有数据,弹窗提示 msg(仅特殊情况使用) |
| 5000  | 通用请求失败,弹窗提示 msg |
| 9001  | 登录已过期,返回登录页 |
| 9002  | 已登录但没有操作权限,弹窗提示 msg |
| 状态码 | 意义                                                   |
| ------ | ------------------------------------------------------ |
| 2000   | 通用请求成功                                           |
| 2001   | 请求成功,但是没有数据,弹窗提示 msg(仅特殊情况使用) |
| 5000   | 通用请求失败,弹窗提示 msg                             |
| 9001   | 登录已过期,返回登录页                                 |
| 9002   | 已登录但没有操作权限,弹窗提示 msg                     |
## 请求调用
请求层的每一个请求集,都会实例化自身作为全局单例(数据控制层无需再示例化)
例如,请求集 FCommon 会实例化自身为 $fetchCommon
请求层的每一个请求集,都会实例化自身作为全局单例(数据控制层无需再示例化)
比如说,请求集 FCommon 会实例化自身为 $fetchCommon
```js
import {
@framework/202-数据控制层基类Pilot.md
@@ -1,4 +1,17 @@
# 数据控制层基类Pilot
# 数据控制层基类 Pilot.js
- [数据控制层基类 Pilot.js](#数据控制层基类-pilotjs)
  - [功能说明](#功能说明)
  - [引用方法](#引用方法)
  - [主要方法](#主要方法)
  - [创建页面合并对象](#创建页面合并对象)
    - [主要工作:生成合并对象](#主要工作生成合并对象)
    - [实际合并](#实际合并)
    - [页面能力扩展:跨页面通讯](#页面能力扩展跨页面通讯)
    - [页面能扩展:跨端通讯](#页面能扩展跨端通讯)
  - [转换静态图片引用](#转换静态图片引用)
## 功能说明
类 Pilot 是数据控制层的基类,用于将一个 Vue 对象的部分功能拆分出来独立申明后再合并回去,每个数据控制器都需要基础此类
@@ -115,11 +128,11 @@
this.$poster(direction, action, data);
```
| 参数名 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| direction | String | 是 | 发送去向,有两个值,下一页'nextPage'、上一页'prevPage') |
| action | String | 是 | 动作名称 |
| data | any | 否 | 携带数据 |
| 参数名    | 类型   | 必填 | 描述                                                     |
| --------- | ------ | ---- | -------------------------------------------------------- |
| direction | String | 是   | 发送去向,有两个值,下一页'nextPage'、上一页'prevPage') |
| action    | String | 是   | 动作名称                                                 |
| data      | any    | 否   | 携带数据                                                 |
例如:
@framework/210-公共工具箱Tools.md
@@ -1,5 +1,16 @@
# 公共工具箱 Tools
- [公共工具箱 Tools](#公共工具箱-tools)
  - [功能说明](#功能说明)
  - [引用方法](#引用方法)
  - [使用方法](#使用方法)
  - [方法列表](#方法列表)
  - [部分功能详解](#部分功能详解)
    - [momentFormat 时间格式化](#momentformat-时间格式化)
    - [debounce、throttle 防抖和节流](#debouncethrottle-防抖和节流)
## 功能说明
用于处理各种常见的编程任务的工具箱
## 引用方法
@@ -15,7 +26,7 @@
由于本工具箱全都是静态方法,无需实例化,可直接调用
```js
Tools.isNumber(12);
Tools.isNumber(12); // true
```
## 方法列表