簡單的APP創(chuàng)建思路
第一步:將UI按照結(jié)構(gòu)分解為組件
劃分組件時遵循[單一功能原則][1]倔撞。
將劃分好的組件按照結(jié)構(gòu)列出來。
第二步:編寫靜態(tài)的無交互版本
在編寫靜態(tài)版本時不要使用state
檐什,state
是為交互準(zhǔn)備的。
寫組件時可以自頂向下也可以自底向上弱卡,項目的解構(gòu)簡單時自頂向下通常會比較簡單乃正,項目復(fù)雜度增加時采用自底向上比較簡單,并且可以邊寫邊測試婶博。
第三步:確定交互所需要的屬性
對于備選的屬性做如下篩選:
- 它是通過
props
從父組件傳入的嗎瓮具?如果是,那么它不應(yīng)該被加入state
凡人。
1. 它是保持不變的嗎名党?如果是,那么它不應(yīng)該被加入state
挠轴。
1. 你可以從組件的state
或props
中計算得到它嗎传睹?如果是,那么它不應(yīng)該被加入state
岸晦。
關(guān)鍵點:屬性不要重復(fù)欧啤。
第四步:確定state
應(yīng)該位于哪個組件
對于第三步選出的每一個屬性:
- 找出所有基于這個屬性做出相應(yīng)渲染的組件睛藻。
- 找出這些組件的一個公共父組件。
-
state
應(yīng)該位于這個父組件或者更高一層的組件邢隧。 - 如果沒有這么一個組件那么就創(chuàng)建一個新的組件來存放
state
店印,然后將它加入組件結(jié)構(gòu),作為公共父組件或者更高一層的組件倒慧。
第五步:添加反向的數(shù)據(jù)流
從嵌套在深層的組件更新淺層組件的state
按摘。
[1]: https://zh.wikipedia.org/wiki/%E5%8D%95%E4%B8%80%E5%8A%9F%E8%83%BD%E5%8E%9F%E5%88%99