復(fù)雜 UI怎么設(shè)計(jì)?
參考windows的邏輯
無論多么復(fù)雜的UI。都可以看成是一坨數(shù)據(jù)的呈現(xiàn)。
無論多么復(fù)雜的用戶交互。都可以看做是用戶往這坨數(shù)據(jù)扔進(jìn)去了些小數(shù)據(jù)。這個(gè)小數(shù)據(jù)可以叫做event,也可以叫做action.
所有的顯示與數(shù)據(jù)一一對應(yīng) data<==>view
所有的輸入,作為event
在控制器的作用下,修改數(shù)據(jù)
event-->controller-->data
復(fù)雜UI中,控制器可以分解為許多小控制器,數(shù)據(jù)也可以分解為許多小數(shù)據(jù)
event分發(fā)到合適的控制器,修改對應(yīng)的數(shù)據(jù)。
redux的思路。
數(shù)據(jù)放在大樹里,控制器由許多reducer組成。
為什么不用redux?
redux將組件的視圖(view)跟功能(reducer)割裂開來,不適合組件化。
對于不需要store的組件,action都要去一趟store很繁瑣。
采用pubsub的好處
采用pubsub的方式,組件的數(shù)據(jù),控制,視圖都在一起。
pubsub如何避免命名沖突
通過約定msg的方式,進(jìn)行組合。
msg采用命名空間命名法,同樣可以達(dá)到樹效果。