javascript – 如何在模块化用户界面中管理基于事件的输入?
作者:互联网
用户界面通常由不同的输入设备组成,如按钮,输入字段,对话框,滑块等.事件顺序通常决定了预期的行为,并且这种行为通常不容易在一个简单的规则中捕获.
是否存在针对此类问题的通用方法?
作为界面变得复杂的简单说明,请使用带有3个切换按钮的界面.如果按钮单击的行为取决于每个按钮的状态,则可能有2 ^ 3 * 3 = 24个事件情况.如果行为还取决于事件历史记录,则事件数量会呈指数级增长.
作为一个真实的例子,看看我正在研究的所见即所得的文本编辑器.我在编辑器上选择焦点/模糊事件来启用/禁用编辑器.一些按钮(小部件)立即将焦点返回到编辑器,而其他按钮则打开一个对话框.在下图中,箭头显示了单击界面元素时焦点的位置.
我发现在这里管理焦点是一个棘手的问题,经常引入不受欢迎或反直觉的行为.
解决方法:
您可以使用Mediator AKA Message Broker模式来分离UI组件(通常是任何类型的应用程序组件),这里有两篇关于它的文章:
> Mediator Pattern applied to Javascript
> Mediator pattern javascript
标签:javascript,user-interface,event-handling,modular 来源: https://codeday.me/bug/20190630/1333358.html