天天看點

REDUX-COW開發架構介紹REDUX-COW 簡介REDUX-COW的事件流工作方式安裝API在千牛裡使用redux-cow架構使用自帶的例子最後

redux是基于redux的改良架構,抛棄了redux的各種靈活性,保留了最佳的程式設計實踐。相比redux,redux-cow具有如下特點:

隻有 <code>starter</code> , <code>fire</code>, <code>addaction</code>, <code>addreducer</code> 4個api, 了解成本和使用成本很低。

redux-cow沒有redux的靈活性,而是提供了最好的使用方法,隻要遵循,即可以寫出人人都可了解的代碼。

redux-cow 使用了隻有一個中心的全局事件派發機制,任何元件,任何子產品都可以一條指令直達資料進行中心。

降低了子產品間的耦合性。

REDUX-COW開發架構介紹REDUX-COW 簡介REDUX-COW的事件流工作方式安裝API在千牛裡使用redux-cow架構使用自帶的例子最後

任何一條事件的派發,都先到達action裡進行處理,然後同樣事件會到達reducer裡處理,并最終更新到view.

starter為程式入口的api, starter隻有一個方法 ,就是starter.run。

任何一個基于redux-cow開發的程式,入口都一樣

增加一個action處理器

增加一個資料處理器, 每一條響應的action,都會産生一條響應的資料處理器

addreducer 每一個key 值,都會在state裡增加一個對應的值。 以上的value,在 root view(app.js)的 this.props.value裡可以擷取到。

fire是全局的指令派發器,可以在任意的子產品裡派發,并在reducer裡進行處理。

fire能派發三種指令

以下代碼派發一條,靜态指令

異步請求的指令,payload的值函數,異步請求的指令不會進一步被reducer處理

以下為異步請求的指令

架構内置了程式的啟動指令,希望在action和reducer裡對改指令進行處理,做程式的資料初始化操作

app為程式的入口view檔案,和一般的view并無任何差別,

通過starter.run(app)後, app裡會增加reduer裡的所有屬性

在代碼裡直接擷取即可

更多的例子可以檢視example裡的例子。

千牛5.10.0以後已經内置redux-cow,

如果在開發裡需要使用redux-cow修改webpack.config.js,

externals裡增加”redux-cow”: “commonjs redux-cow”即可。

不需要安裝redux-cow

例子使用qap-cli開發,執行以下指令既可以看到響應的例子

本架構暫時隻支援rax, 将在下一步支援react

繼續閱讀