Skip to content

Commit

Permalink
update doc
Browse files Browse the repository at this point in the history
  • Loading branch information
jiangxy committed Apr 1, 2017
1 parent e51f643 commit 56f58d4
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 10 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Expand Up @@ -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数据的逻辑
Expand Down
9 changes: 4 additions & 5 deletions docs/AsyncSchema.md
Expand Up @@ -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如果只在本地存在,就保持原样
Expand All @@ -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。

4 changes: 2 additions & 2 deletions docs/TODO.md
Expand Up @@ -13,7 +13,7 @@
- [x] 修改ajax util, 全部变成async/await
- [x] 想办法减小下bundle大小,或者分片
- [x] 自定义logger level
- [ ] 增加一个"TAB模式"?? <- 这种模式下就不需要面包屑了
- [x] 增加一个"TAB模式"?? <- 这种模式下就不需要面包屑了

## 侧边栏组件

Expand Down Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions docs/TabMode.md
Expand Up @@ -2,11 +2,11 @@

普通模式下,内容区只会显示一个组件。每次点击侧边栏的菜单项时,正在显示的组件会被替换掉。

TAB模式下,就可以同时显示多个组件了。用户可以在多个组件中切换
TAB模式下,就可以同时显示多个组件了。用户可以在多个组件间切换

![](screenshots/10.png)

对于TAB模式,我提供了[两个配置项](src/config.js#L18)
对于TAB模式,我提供了[两个配置项](../src/config.js#L18)

## enable

Expand Down

0 comments on commit 56f58d4

Please sign in to comment.