From 2f2be05b8caedd31bfd9d68110ea8c1267971f03 Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Fri, 07 Mar 2025 12:22:37 +0800 Subject: [PATCH] 知识库,优化文案 --- @framework/210-公共工具箱Tools.md | 2 @framework/202-数据控制层基类Pilot.md | 6 ++ @framework/101-工程介绍.md | 41 ++++++++++---------- @framework/201-请求层基类Fetcher.md | 15 ++++++- @framework/102-开发规范.md | 10 +++-- 5 files changed, 44 insertions(+), 30 deletions(-) diff --git "a/@framework/101-\345\267\245\347\250\213\344\273\213\347\273\215.md" "b/@framework/101-\345\267\245\347\250\213\344\273\213\347\273\215.md" index f218de1..2da0c56 100644 --- "a/@framework/101-\345\267\245\347\250\213\344\273\213\347\273\215.md" +++ "b/@framework/101-\345\267\245\347\250\213\344\273\213\347\273\215.md" @@ -6,16 +6,15 @@ - [工程目录结构](#工程目录结构) - [短路径映射](#短路径映射) - [页面构成](#页面构成) - - [页面拆分](#页面拆分) - - [数据控制层写法](#数据控制层写法) - - [新页面示例](#新页面示例) - - [界面层](#界面层) - - [H5 空白界面示例](#h5-空白界面示例) - - [小程序空白界面示例](#小程序空白界面示例) - - [空白样式文件示例](#空白样式文件示例) - - [数据控制层](#数据控制层) - - [空白数据控制层示例](#空白数据控制层示例) - - [空白请求层示例](#空白请求层示例) + - [界面层和数据控制层的拆分](#界面层和数据控制层的拆分) + - [新页面模板](#新页面模板) + - [界面层空白模板](#界面层空白模板) + - [H5 空白界面模板](#h5-空白界面模板) + - [小程序空白界面模板](#小程序空白界面模板) + - [空白样式文件模板](#空白样式文件模板) + - [数据控制层空白模板](#数据控制层空白模板) + - [数据控制器空白模板](#数据控制器空白模板) + - [请求集空白模板](#请求集空白模板) ## 工程介绍 @@ -84,12 +83,12 @@ - 数据控制层(root/src/pilots/pilotsGroup/PName.js) - 请求层(root/src/fetchers/FName.js) -### 页面拆分 +### 界面层和数据控制层的拆分 一个业务页面的界面层和数据控制层,实际上是对一个 Vue 组件的拆分,最终运行的时候,还是会合二为一,还原成原本的 Vue 实例 因此,数据控制层其实是对这个 Vue 实例部分功能的一种转写,类似于语法糖 -#### 数据控制层写法 +**数据控制层写法** 例如: @@ -131,13 +130,13 @@ 更多细节,请参照《数据控制层基类Pilot》 -## 新页面示例 +## 新页面模板 -新建页面时,页面初始内容,可参考如下空白示例 +新建页面时,页面初始内容,可参考如下空白模板 -### 界面层 +### 界面层空白模板 -#### H5 空白界面示例 +#### H5 空白界面模板 H5 界面需要 CPage、CContent、CNavBar 这三个基础页面组件 @@ -177,7 +176,7 @@ </script> ``` -#### 小程序空白界面示例 +#### 小程序空白界面模板 ```html /** @@ -207,7 +206,7 @@ </script> ``` -#### 空白样式文件示例 +#### 空白样式文件模板 ```css /** @@ -220,9 +219,9 @@ .page-name {} ``` -### 数据控制层 +### 数据控制层空白模板 -#### 空白数据控制层示例 +#### 数据控制器空白模板 ```js /** @@ -266,7 +265,7 @@ 说明:请求异常由请求层的基类自动处理,数据控制层跳过错误的逻辑,只处理请求成功的后续业务 -#### 空白请求层示例 +#### 请求集空白模板 ```js /** diff --git "a/@framework/102-\345\274\200\345\217\221\350\247\204\350\214\203.md" "b/@framework/102-\345\274\200\345\217\221\350\247\204\350\214\203.md" index dba489e..c73d973 100644 --- "a/@framework/102-\345\274\200\345\217\221\350\247\204\350\214\203.md" +++ "b/@framework/102-\345\274\200\345\217\221\350\247\204\350\214\203.md" @@ -181,7 +181,7 @@ ``` **事件变量用 evt** -事件 event 的简写,必须是 evt(不能用单字面 e ) +事件 event 的简写,必须是 evt(不能用单字母 e ) ```html <view @tap="evt => onOrderClick(evt)"></view> @@ -189,7 +189,7 @@ ``` **报错信息用 err** -报错 error 的简写,必须是 err(不能用单字面 e ) +报错 error 的简写,必须是 err(不能用单字母 e ) ```js Taro.request({ @@ -335,8 +335,10 @@ #### 模版中的函数调用 -模版中调用函数,必须显式的书写 evt 变量和箭头函数,即: `evt => null` +模版中调用函数,必须显式的书写 evt 变量和箭头函数,即: `evt => fncName()` +我们把 Taro 自身组件视为普通元素,元素绑定事件使用 `@tap` 的方式,非元素皆是组件,组件使用 `:onClick` 的方式绑定 +例如: ```html <view @tap="() => onOpenOrderDetail()"></view> <CMenu :onItemClick="evt => onMenuItemClick(evt)" /> @@ -344,7 +346,7 @@ ### CSS 属性顺序 -按顺序如下: +为了避免 css 属性写重复,请按如下顺序书写: * **文档流属性** display, position, float, clear, visibility, table-layout 等 diff --git "a/@framework/201-\350\257\267\346\261\202\345\261\202\345\237\272\347\261\273Fetcher.md" "b/@framework/201-\350\257\267\346\261\202\345\261\202\345\237\272\347\261\273Fetcher.md" index a37af05..82cee2e 100644 --- "a/@framework/201-\350\257\267\346\261\202\345\261\202\345\237\272\347\261\273Fetcher.md" +++ "b/@framework/201-\350\257\267\346\261\202\345\261\202\345\237\272\347\261\273Fetcher.md" @@ -13,7 +13,8 @@ ## 功能说明 -类 Fetcher 是一个用于处理 HTTP 请求的基类,包含了多种方法来简化和统一请求的处理,请求层的每个请求集,都必须继承此类 +类 Fetcher 是一个用于处理 HTTP 请求的基类,包含了URL拼接、响应数据适配、报错提示等多种方法来简化和统一请求的处理 +请求层的每个请求集,都必须继承此类 ## 引用方法 @@ -170,8 +171,16 @@ ## 请求调用 -请求层的每一个请求集,都会实例化自身作为全局单例(数据控制层无需再示例化) -比如说,请求集 FCommon 会实例化自身为 $fetchCommon +请求层的每一个请求集,都会实例化自身作为全局单例,使用时,只需引用已经实例化好的全局单例,直接发请求即可 + +```js +import { Fetcher } from '@components/bases/Fetcher'; + +class FCommon extends Fetcher {} + +// 全局单例 +export const $fetchCommon = new FCommon(); +``` ```js import { diff --git "a/@framework/202-\346\225\260\346\215\256\346\216\247\345\210\266\345\261\202\345\237\272\347\261\273Pilot.md" "b/@framework/202-\346\225\260\346\215\256\346\216\247\345\210\266\345\261\202\345\237\272\347\261\273Pilot.md" index d9e0570..ca5191e 100644 --- "a/@framework/202-\346\225\260\346\215\256\346\216\247\345\210\266\345\261\202\345\237\272\347\261\273Pilot.md" +++ "b/@framework/202-\346\225\260\346\215\256\346\216\247\345\210\266\345\261\202\345\237\272\347\261\273Pilot.md" @@ -13,7 +13,11 @@ ## 功能说明 -类 Pilot 是数据控制层的基类,用于将一个 Vue 对象的部分功能拆分出来独立申明后再合并回去,每个数据控制器都需要基础此类 +Pilot 是数据控制层的基类 +- 将 Vue 对象的数据绑定、方法绑定、生命周期等功能拆分出来,进行独立申明(拆分后界面层管显示,数据控制层管数据流转) +- 增加跨页通讯、键名转换等相关的能力 +- 每个数据控制器都需要继承此类 +- 子类实例化后,再将申明的内容合并回去 ## 引用方法 diff --git "a/@framework/210-\345\205\254\345\205\261\345\267\245\345\205\267\347\256\261Tools.md" "b/@framework/210-\345\205\254\345\205\261\345\267\245\345\205\267\347\256\261Tools.md" index 62ce084..4e41d51 100644 --- "a/@framework/210-\345\205\254\345\205\261\345\267\245\345\205\267\347\256\261Tools.md" +++ "b/@framework/210-\345\205\254\345\205\261\345\267\245\345\205\267\347\256\261Tools.md" @@ -11,7 +11,7 @@ ## 功能说明 -用于处理各种常见的编程任务的工具箱 +Tools 是一个工具类,是一个处理类型判断、字符格式化等各种常见的编程任务的工具箱,它所有的方法都是静态方法 ## 引用方法 -- Gitblit v1.9.1