出現(xiàn)的問題:
1. 數(shù)據(jù)與界面的同步祈匙,業(yè)務邏輯與界面顯示的劃分
- 數(shù)據(jù)變化時,需要更新UI熬尺。UI的更新要根據(jù)當前數(shù)據(jù),做統(tǒng)一處理谓罗,而不是每更新一個數(shù)據(jù)粱哼,就單獨處理某個UI變化。
當選擇了“我的標簽”時檩咱,需要將標簽定制區(qū)域顯示出來揭措,否則就隱藏。觸發(fā)UI變化的事件刻蚯,不應該是“我的標簽”的點擊事件绊含,而是內存中已選標簽的數(shù)據(jù)的變化。
流程應該是:
界面事件引起數(shù)據(jù)變化 -> 數(shù)據(jù)變化引起界面更新
而不是:
界面事件直接導致界面更新
這樣才能保證數(shù)據(jù)與界面的同步炊汹。
(數(shù)據(jù)的變化可能來自界面事件艺挪,也可能來自服務器;除了界面需要根據(jù)數(shù)據(jù)的變化而變化兵扬,業(yè)務邏輯可能也要根據(jù)數(shù)據(jù)的變化而變化麻裳。 所以,要以數(shù)據(jù)為中心器钟。)
- 根據(jù)現(xiàn)存數(shù)據(jù)與UI事件去更新UI的時候津坑,更新UI的策略算法,要跟實際更新UI的CSS語法分離開來傲霸。
當選擇的標簽過多的時候疆瑰,需要顯示左右導航眉反。點擊左右導航的時候,要將相應的下一個標簽完全顯示出來穆役。這時候就要有一個判斷下一個標簽位置的算法寸五,這個算法最好與UI顯示邏輯分離開來,將CSS定位方式與該算法混起來耿币,會顯得非呈嵝樱混亂,并且不利于以后修改(也許需求只是更改了UI顯示邏輯淹接,那么算法就可以不用變化)十性。
- 模板與業(yè)務邏輯要隔離開來,模板只負責判斷數(shù)據(jù)是否存在塑悼,如果存在就渲染劲适。數(shù)據(jù)的格式化,要么放在前端業(yè)務邏輯代碼塊中厢蒜,要么放在后臺(放在前端更好一些霞势,因為后臺數(shù)據(jù)應該不用關心展現(xiàn)方式)。