复杂 UI怎么设计?
参考windows的逻辑
无论多么复杂的UI。都可以看成是一坨数据的呈现。
无论多么复杂的用户交互。都可以看做是用户往这坨数据扔进去了些小数据。这个小数据可以叫做event,也可以叫做action.
所有的显示与数据一一对应 data<==>view
所有的输入,作为event
在控制器的作用下,修改数据
event-->controller-->data
复杂UI中,控制器可以分解为许多小控制器,数据也可以分解为许多小数据
event分发到合适的控制器,修改对应的数据。
redux的思路。
数据放在大树里,控制器由许多reducer组成。
为什么不用redux?
redux将组件的视图(view)跟功能(reducer)割裂开来,不适合组件化。
对于不需要store的组件,action都要去一趟store很繁琐。
采用pubsub的好处
采用pubsub的方式,组件的数据,控制,视图都在一起。
pubsub如何避免命名冲突
通过约定msg的方式,进行组合。
msg采用命名空间命名法,同样可以达到树效果。