From 56f58d43df2877c7206ce7aef445555f0e6b7d56 Mon Sep 17 00:00:00 2001 From: jiangxiyang Date: Sat, 1 Apr 2017 12:00:06 +0800 Subject: [PATCH] update doc --- CHANGELOG.md | 2 +- docs/AsyncSchema.md | 9 ++++----- docs/TODO.md | 4 ++-- docs/TabMode.md | 4 ++-- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7e1e24..c619d54 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,7 +35,7 @@ * 使用了一些[HOC](https://facebook.github.io/react/docs/higher-order-components.html)之类的技巧, 将parse schema的过程独立出来, 效率应该会好很多 * 优化querySchema, 可以配置图标/默认值等, 参考[test.querySchema.js](src/schema/test.querySchema.js) * 优化dataSchema, 支持showType属性, 支持配置默认值/校验规则/disabled等, 参考[test.dataSchema.js](src/schema/test.dataSchema.js) - * 优化tableConfig, 新增showInsert/showUpdate/showDelete配置, 参考[test.config.js](src/schema/test.config.js)和[DBTable.DEFAULT_CONFIG](src/components/DBTable/index.js#L20) + * 优化tableConfig, 新增showInsert/showUpdate/showDelete配置, 参考[test.config.js](src/schema/test.config.js)和[DBTable.DEFAULT_CONFIG](src/config.js#L68) * insert/update/delete后, 不再刷新整个表格 * 其他用户体验上的优化 * 重写mock数据的逻辑 diff --git a/docs/AsyncSchema.md b/docs/AsyncSchema.md index 1021341..790a7a9 100644 --- a/docs/AsyncSchema.md +++ b/docs/AsyncSchema.md @@ -22,13 +22,13 @@ } ``` -注意querySchema/dataSchema不是要求必须返回的,服务端甚至可以返回一个空的对象:`data: {}`,参考[后端接口规范](Ajax.md#L103),也可以参考[MockAjax.js](../src/utils/MockAjax.js#L265)里的例子。 +注意querySchema/dataSchema不是要求必须返回的,服务端甚至可以返回一个空的对象:`data: {}`,参考[MockAjax.js](../src/utils/MockAjax.js#L265)里的例子,也可以参考[后端接口规范](Ajax.md)。 -剩下的问题就是,如何将本地的schema(本地的{tableName}.querySchema.js文件)和远程的schema合并。大概的逻辑如下: +剩下的问题就是,如何将本地的schema(本地的`{tableName}.querySchema.js`文件)和远程的schema合并。大概的逻辑如下: 1. 如果找不到本地schema,就以远程schema为准; 2. 如果本地schema和远程schema都不存在,报错; -3. 如果本地schema和远程schema都存在,要将二者合并作为最终的schema。合并时已本地schema为基准,以key为标识,相同key的字段会被合并 +3. 如果本地schema和远程schema都存在,要将二者合并作为最终的schema。合并时以本地schema为基准,以key为标识,相同key的字段会被合并 * 某个key如果在远程和本地都存在,远程的配置会覆盖本地的配置,合并逻辑类似`newField = Object.assign{{}, local, remote}` * 某个key如果只在远程存在,认为是服务端要新增一个字段,新的key会被加到最终的schema末尾 * 某个key如果只在本地存在,就保持原样 @@ -43,9 +43,8 @@ ## ignoreSchemaCache -出于性能考虑,异步schema模式下,我只会在刚初始化某个表时请求一次服务端并合并schema,然后将schema缓存起来。后续再访问这个表的时候(比如在侧边栏菜单中切换)会直接读取缓存的schema。这样有个问题就是服务端接口变化后,要刷新下页面才能看到效果,在某些情况下可能不太方便。所以提供了一个ignoreSchemaCache配置,默认值false。当ignoreSchemaCache=true时,每次组件初始化都会重新请求后端接口并合并schema。服务端接口变化时,侧边栏中切换下就能看到效果了,不用刷新整个页面。 +出于性能考虑,异步schema模式下,我只会在刚初始化某个表时请求一次服务端并合并schema,然后将schema缓存起来。后续再访问这个表的时候(比如在侧边栏菜单中切换)会直接读取缓存的schema。这样有个问题就是服务端接口变化后,要刷新下页面才能看到效果,在某些情况下可能不太方便。所以提供了一个ignoreSchemaCache配置,默认值false。当ignoreSchemaCache=true时,每次DBTable组件初始化/切换都会重新请求后端接口并合并schema。服务端接口变化时,侧边栏中切换下就能看到效果了,不用刷新整个页面。 # 其他 异步schema可以做到很多有意思的事情,也许以后可以考虑把menu.js、路由等都做成异步的。。。我也一直在想,也许可以做成云端服务,用户只要提供配置和接口就好了,不用自己去编译js。 - diff --git a/docs/TODO.md b/docs/TODO.md index 4e337ce..5e55178 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -13,7 +13,7 @@ - [x] 修改ajax util, 全部变成async/await - [x] 想办法减小下bundle大小,或者分片 - [x] 自定义logger level -- [ ] 增加一个"TAB模式"?? <- 这种模式下就不需要面包屑了 +- [x] 增加一个"TAB模式"?? <- 这种模式下就不需要面包屑了 ## 侧边栏组件 @@ -41,7 +41,7 @@ - [x] DBTable组件可配置 - [x] 单条update时, 将原始数据填入modal - [x] dataSchema支持showType -- [ ] dataSchema支持外键约束?? +- [x] dataSchema支持外键约束?? - [x] dataSchema支持image/file/url的showType - [x] 表格中根据showType渲染 - [x] modal中的表单增加placeholder diff --git a/docs/TabMode.md b/docs/TabMode.md index 547589e..4c2ead7 100644 --- a/docs/TabMode.md +++ b/docs/TabMode.md @@ -2,11 +2,11 @@ 普通模式下,内容区只会显示一个组件。每次点击侧边栏的菜单项时,正在显示的组件会被替换掉。 -TAB模式下,就可以同时显示多个组件了。用户可以在多个组件中切换。 +TAB模式下,就可以同时显示多个组件了。用户可以在多个组件间切换。 ![](screenshots/10.png) -对于TAB模式,我提供了[两个配置项](src/config.js#L18): +对于TAB模式,我提供了[两个配置项](../src/config.js#L18): ## enable