@complex-suite/data
Advanced tools
+31
| # @complex-suite/data 开发待办 | ||
| > 本文档记录 data 包的功能待办、设计决策与已放弃方案。 | ||
| ## Abandon | ||
| - 优化ObserveList通过defineReactive实现而不是之前的observe实现 | ||
| - 实际上此实现可能会导致form在重复生成响应式时导致过多的set重写问题,暂时弃用 | ||
| - 考虑originProp跟随edit,尽可能的把字典数据与编辑数据解绑,包括编辑函数,考虑加载时把对应函数直接加载到编辑数据中,简化字典数据 | ||
| - 理论上originProp是全局一致,跟随edit需要额外定义,实现逻辑更改为originProp与prop相同则不赋值 | ||
| - DictionaryData中添加菜单转DictionaryValue的函数 | ||
| - 通过尽可能减少DictionaryData与DictionaryValue的关联,后期主要通过DictionaryValue实现功能逻辑,转换功能放弃 | ||
| - 重新instanceof判断static [Symbol.hasInstance](instance: any) { return instance.constructor.$name === this.$name } | ||
| - 实际调用发现,最终的判断都会到Data中去判断与Data的关系而不是与DefaultData的关系,猜测每个类单独重写此方法可能回有效,但是可能存在重写疏漏导致的错误问题,此功能放弃,特殊项目需要可以单独实现 | ||
| - 放弃级联数据的关联,级联数据需要可通过基础函数实现,仅添加depth作为可能存在的深度的额外判断条件 | ||
| - 相互依赖关系通过额外的工具函数实现 | ||
| - DefaultMod的formaters属性,考虑实现对AttrsValue的最终格式化,但是因renders函数本身能实现相关功能且需要对组件进行大量适配,放弃 | ||
| ## TIPS | ||
| - 持续优化reset/destory,其中reset在能恢复的基础上尽可能的删除数据,destory不考虑恢复问题,尽可能的初始化数据 | ||
| - 删除属性测试结果,delete时间长但是后期内存占用小,设置undefined速度快但是有小内存占用 | ||
| - 数据保存,array/object/map测试结果,内存占用array[593M]/object[882M]/map[982M],保存速度array[958ms]/object[5084ms]/map[5161ms],读取速度array[基于index速度最快基于循环查找超大数据量下内存溢出]/object[1872ms]/map[268ms] | ||
| ## ToDo | ||
| - 优化全局类型 | ||
| - 实现List表单 | ||
| - SearchMenu实现完成后联动刷新机制 | ||
| - 简化整体代码 | ||
| - 优化代码结构 |
+3
-25
@@ -0,27 +1,5 @@ | ||
| ### `5.0.8` | ||
| - docs: 更新子包 README 安装命令,修正旧包名 `complex-*` 为 `@complex-suite/*`。 | ||
| - docs: 创建 `Todo.md`,迁移 `history.md` 中的待办事项。 | ||
| ### Abandon | ||
| - 优化ObserveList通过defineReactive实现而不是之前的observe实现 | ||
| - - 实际上此实现可能会导致form在重复生成响应式时导致过多的set重写问题,暂时弃用 | ||
| - 考虑originProp跟随edit,尽可能的把字典数据与编辑数据解绑,包括编辑函数,考虑加载时把对应函数直接加载到编辑数据中,简化字典数据 | ||
| - - 理论上originProp是全局一致,跟随edit需要额外定义,实现逻辑更改为originProp与prop相同则不赋值 | ||
| - DictionaryData中添加菜单转DictionaryValue的函数 | ||
| - - 通过尽可能减少DictionaryData与DictionaryValue的关联,后期主要通过DictionaryValue实现功能逻辑,转换功能放弃 | ||
| - 重新instanceof判断static [Symbol.hasInstance](instance: any) { return instance.constructor.$name === this.$name } | ||
| - - 实际调用发现,最终的判断都会到Data中去判断与Data的关系而不是与DefaultData的关系,猜测每个类单独重写此方法可能回有效,但是可能存在重写疏漏导致的错误问题,此功能放弃,特殊项目需要可以单独实现 | ||
| - 放弃级联数据的关联,级联数据需要可通过基础函数实现,仅添加depth作为可能存在的深度的额外判断条件 | ||
| - 相互依赖关系通过额外的工具函数实现 | ||
| - DefaultMod的formaters属性,考虑实现对AttrsValue的最终格式化,但是因renders函数本身能实现相关功能且需要对组件进行大量适配,放弃 | ||
| ### TIPS | ||
| - 持续优化reset/destory,其中reset在能恢复的基础上尽可能的删除数据,destory不考虑恢复问题,尽可能的初始化数据 | ||
| - 删除属性测试结果,delete时间长但是后期内存占用小,设置undefined速度快但是有小内存占用 | ||
| - 数据保存,array/object/map测试结果,内存占用array[593M]/object[882M]/map[982M],保存速度array[958ms]/object[5084ms]/map[5161ms],读取速度array[基于index速度最快基于循环查找超大数据量下内存溢出]/object[1872ms]/map[268ms] | ||
| ### ToDo | ||
| - 优化全局类型 | ||
| - 实现List表单 | ||
| - SearchMenu实现完成后联动刷新机制 | ||
| - 简化整体代码 | ||
| - 优化代码结构 | ||
| ### `5.0.7` | ||
@@ -28,0 +6,0 @@ - fix(translate)!: 修复翻译冻结点,涉及非兼容性类型变更 |
+3
-3
| { | ||
| "name": "@complex-suite/data", | ||
| "version": "5.0.7", | ||
| "version": "5.0.8", | ||
| "description": "a complex data", | ||
@@ -15,4 +15,4 @@ "type": "module", | ||
| "dependencies": { | ||
| "@complex-suite/utils": "3.0.7", | ||
| "@complex-suite/plugin": "5.0.7" | ||
| "@complex-suite/utils": "3.0.8", | ||
| "@complex-suite/plugin": "5.0.8" | ||
| }, | ||
@@ -19,0 +19,0 @@ "devDependencies": { |
+5
-5
| # Complex Data | ||
| `complex-data` 是一个高度可组合、可扩展、由数据驱动的 UI 逻辑层框架。它旨在将复杂前端页面(尤其是表单、列表和数据表格)的状逻辑、数据流和交互行为,从具体的 UI 框架中解耦出来,通过一份结构化的数据(我们称之为“字典”)来进行定义和管理。 | ||
| `@complex-suite/data` 是一个高度可组合、可扩展、由数据驱动的 UI 逻辑层框架。它旨在将复杂前端页面(尤其是表单、列表和数据表格)的状逻辑、数据流和交互行为,从具体的 UI 框架中解耦出来,通过一份结构化的数据(我们称之为“字典”)来进行定义和管理。 | ||
@@ -24,3 +24,3 @@ ## 核心理念 | ||
| ```bash | ||
| npm install complex-data | ||
| npm install @complex-suite/data | ||
| ``` | ||
@@ -33,3 +33,3 @@ | ||
| ```typescript | ||
| import { ComplexData } from 'complex-data'; | ||
| import { ComplexData } from '@complex-suite/data'; | ||
@@ -93,4 +93,4 @@ // 1. 定义表单字典 | ||
| - [`complex-utils`](https://github.com/MarAngle/complex-utils): 提供核心的工具函数和基类。 | ||
| - [`complex-plugin`](https://github.com/MarAngle/complex-plugin): 提供布局和通知系统。 | ||
| - [`@complex-suite/utils`](https://github.com/MarAngle/@complex-suite/utils): 提供核心的工具函数和基类。 | ||
| - [`@complex-suite/plugin`](https://github.com/MarAngle/@complex-suite/plugin): 提供布局和通知系统。 | ||
@@ -97,0 +97,0 @@ ## 贡献 |
305042
0.1%77
1.32%+ Added
+ Added
- Removed
- Removed
Updated
Updated