W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Redux 不是一個(gè)整體的框架,而是一系列的約定和一些讓他們協(xié)同工作的函數(shù)。你的 Redux 項(xiàng)目中的主要代碼不會(huì)是使用 Redux 的 API,因?yàn)榇蠖鄶?shù)時(shí)間你都會(huì)在編寫功能。
這讓到 Redux 的雙向遷移都非常的容易。我們并不想限制你!
Reducer 抓住了 Flux Store 的本質(zhì),所以這讓逐步遷移一個(gè) Flux 項(xiàng)目到 Redux 上面來變成了可能,無論你使用了 Flummox、Alt、traditional Flux 還是其他 Flux 庫(kù)。
同樣你也可以將 Redux 的項(xiàng)目通過相同的步驟遷移回上述的這些 Flux 框架。
你的遷移過程大致包含幾個(gè)步驟:
創(chuàng)建一個(gè)叫做 createFluxStore(reducer)
的函數(shù),通過 reducer 函數(shù)適配你當(dāng)前項(xiàng)目的 Flux Store。從代碼來看,這個(gè)函數(shù)很像 Redux 中 createStore
的實(shí)現(xiàn)。它的 dispatch 處理器應(yīng)該根據(jù)不同的 action 來調(diào)用不同的 reducer
,保存新的 state 并拋出更新事件。
通過創(chuàng)建 createFluxStore(reducer)
的方法來將每個(gè) Flux Store 逐步重寫為 Reducer,這個(gè)過程中你的應(yīng)用中其他部分代碼感知不到任何變化,仍可以和原來一樣使用 Flux Store 。
當(dāng)重寫你的 Store 時(shí),你會(huì)發(fā)現(xiàn)你應(yīng)該避免一些明顯違反 Flux 模式的使用方法,例如在 Store 中請(qǐng)求 API、或者在 Store 中觸發(fā) action。一旦基于 reducer 來構(gòu)建你的 Flux 代碼,它會(huì)變得更易于理解。
當(dāng)你所有的 Flux Store 全部基于 reducer 來實(shí)現(xiàn)時(shí),你就可以利用 combineReducers(reducers)
將多個(gè) reducer 合并到一起,然后在應(yīng)用里使用這個(gè)唯一的 Redux Store。
現(xiàn)在,剩下的就只是使用 react-redux 或者類似的庫(kù)來處理你的UI部分。
最后,你可以使用一些 Redux 的特性,例如利用 middleware 來進(jìn)一步簡(jiǎn)化異步的代碼。
對(duì)不起,你需要重寫你的 Model 層。它們區(qū)別太大了!
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: