【发布时间】:2015-05-01 18:53:51
【问题描述】:
我们正在计划一个前端应用程序,您可以在其中连续添加/删除舞台中的 UI 组件。您可以就地配置它们,最后可以发布阶段(网页)。
-
我们有一个组件清单。组件是分类的。例如:标题、侧边栏。在库存中,他们将显示该类别中可用组件的预览(可能是图像)。
-
可以从库存中将项目添加到舞台(传统上是简单的网页)。这些阶段与库存类别有关。例如,在阶段中,有一个“标题容器”,您可以在其中添加仅用于标题库存的组件。
每个类别可能有自己的规则。例如,您不能在标题库存类别的“标题容器”(位于阶段/页面中)中添加多个组件。但是,您可以在“侧边栏容器”中添加任意数量的项目。 同样,每个组件可能有自己的规则。每个组件的渲染方式可能不同,并且可能具有不同的配置选项。例如,您从具有徽标、背景图像的“标题库存”中添加标题组件。但另一个可能没有背景图片。除非组件具有功能(例如背景图像),否则它不会在配置面板中可用。
-
除了在库存中预览之外,上述所有组件都将始终有效。这意味着,一旦将它们添加到舞台,它们就是实时元素,它们应该按照默认设置(除非配置)正常工作。他们将在后端服务中进行通信以获取/保存数据。
-
持久化数据:我们还希望在(相同类型的)组件的切换之间持久化数据。例如,如果您在配置为拥有自己的徽标的舞台上添加了一个标题组件,则切换到另一个标题组件(也支持徽标)应该保留旧的选定徽标。
我也认为,如果我们可以将所有东西都变成一个组件,那将是非常好的。例如,logo 是一个组件,背景图片是一个组件。它们中的每一个都应该独立工作,具有自己的配置器(徽标组件的文件上传按钮)、验证(检查徽标组件的文件类型)等。前面提到的每个标题组件将是多个组件的容器,可以容纳任意数量的组件并且可以作为这些组件之间的桥梁(例如在同一个界面中合并所有配置而不是单独)。
我目前的想法是:
- Backbone.js
- jQuery UI 小部件工厂
但两者都需要我们做大量的基础工作。是否有任何框架/库已经解决了我们试图解决的大部分或部分问题。我不确定基于 Angular.js 指令的解决方案在这里是否也会很好。对此的任何建议都非常感谢
【问题讨论】:
-
你的问题是什么?
标签: javascript user-interface architecture frontend user-experience