动态表单页面一直是做中后台管理系统中让人头疼的部分,这里就记录一下自己在这一块实现过程中的一些架构方案吧。
![e3ed80670aecb574c51ad84a1f94cd84.png](https://img-blog.csdnimg.cn/img_convert/e3ed80670aecb574c51ad84a1f94cd84.png)
上图来自我们项目原型中的一小部分(实际项目中粗略估计大概有几百种筛选组合情况)。这种页面如果采用if...else去写的话,不说后期维护起来怎么做,就说开发过程中就能给人整懵逼了,所以在动笔(键盘?)之前我们需要先想好该采用怎样的架构模式去实现我们的页面。接下来就是我在实现过程中的一些思路分析。
一.思路分析
我们先对场景做一定的分析,然后我们发现这些层级选择好像一棵树啊:
![38f9f12758ed5ec1890f96dd38a0b00a.png](https://img-blog.csdnimg.cn/img_convert/38f9f12758ed5ec1890f96dd38a0b00a.png)
是的,整个动态页面我们可以抽象成一颗树来看待,我们的每一项筛选条件都可以看作是树中的一个节点,从root开始一直延伸到叶子节点为止我们的一条筛选条件就构建完成了。既然这样,那么我们可不可以把这颗树通过一份配置文件提前预设好,然后在运行的过程中根据这份预先设置好的配置文件动态的去选择不同的组件进行渲染呢?