close
最近寫了幾個 app 也,使用看看 flux 架構,就來寫寫心得吧。
flux 是由 facebook 提出的一個概念,在 react 上就有了 reflux 而在 vue 上就有了 vuex。
基本上是就是資訊流的方式來傳遞到各個元件,以狀態 sate 的方式,來決定元件的 render。
這樣的每個元件只要抓取來自 store( flux ) 的資料中心,決定了自已的狀態,並繪制出來就行了。
而對於每個元件來說來自 store 的同一個值,卻可能在不同的元件中有著不同的表現。
比如說:
我們可以在 store 上定義了一個 變數叫做 user_is_login 好了, 狀態是 yes or no,而有個 元件是 login 的跳出視窗,
另一個是 個人資料畫面好了也就是 yes 時,login 視窗要 hide 而 個人料資畫面要 show 一正一反。如果是在 flux 上,
各個元件只寫自已的 if 就行了,而不用去管另一個狀態,這裡我們只有牽動到二個元件,說是簡單。
但是隨著係統的愈來愈來,各種的 store 上的參數會應用的、牽動到的元件就會愈來愈多,這樣就能凸顯示出訊息流的方便性。
這裡以vue 的簡圖來看:
上圖可看到各元件要 pass 變數可能是 emit event 、或是直接傳入等等,在使用上,相對的比較麻煩。
而新的 flux 方式為:
看起來就比較簡單了,各個元件的獨立性也就,更加的不認識對方了。
當然,flux 雖然給了我們新的設計pattern 但是who knows 也許以後會有新的理念也說不定…。
文章標籤
全站熱搜