2016-09-22 23 views
3

我是新來的終極版,我發現,獲取數據,或試圖創建一個新的實體,當每一件小事X變成x_success和x_failure,通常,這意味着更多的行動創造者,多處理在減速器中。這裏推薦的方法是什麼?謝謝。如何降低Redux的樣板

+0

如果您正在使用數據CRUD格式的唯一的工作,你可以使用[Redux的數據實體(https://github.com/iamawebgeek/redux -data-entity),這個庫允許你擺脫大部分的樣板,還有離線支持[redux-data-entity-offline](https://github.com/iamawebgeek/redux-data-entity-離線) – iamawebgeek

回答

2

推薦的方法是x_success,x_failure等。但是,這是唯一的異步操作。讓我們來看看爲什麼:

在SPA異步操作是你想知道

  1. 操作時開始運作,

  2. 時,你有迴響應

  3. 反應的類型,成功或失敗

因此,你將有獨立的動作創建者函數返回對象和一個異步動作創建者函數,它可以返回函數而不是對象並從其主體中調用其他動作創建者。

對於你上面的原因,應該有單獨的行動創造者,一個異步動作的創造者,當然對於每一個動作的創造者,你應該在你的減速恆定。

假設你寫你的常量,行動和減速在單獨的文件夾,這可以是一個噩夢。如果是這種情況,你應該在這裏看看duck modular redux

鴨模塊化終極版是你應該definetely實施,以減少樣板。其他的東西,如單獨的行動創造者,分開的常量,單獨檢查減速器的常量是必需的。沒有什麼可以讓它感覺不好的。

0

我開始幾乎從2年前的它的故事,開頭與終極版工作。雖然它是一件好事,它可以消除整個類型的錯誤,並使所有業務邏輯更加明確,但它有很多概念。對於每一個實體,你需要創建:

  • 常數(每個狀態 - 在異步功能的情況下,有三個人,對啓動,成功與失敗)
  • 作用(功能)
  • 減速(更新狀態,有時嵌套更新)

有人提到,你可以像終極版,鴨,這是組織代碼的方法,但你不會寫更少的代碼。所以,我堅信人們應該更認真地寫下自己的包裝器。

我寫了一個庫redux-tiles,它正好處理這種情況 - 它負責創建常量,更新狀態(所以你不需要自己寫一個reducer),並且做嵌套更新如果需要的話。因此,對於異步請求的代碼,會是這個樣子:

import { createTile } from 'redux-tiles'; 
const apiRequest = createTile({ 
    type: ['api', 'request'], 
    fn: ({ api, params }) => api.get('/api/items', params), 
}); 

它也可以讓你的其他操作更容易結合,因爲在fn你有機會獲得dispatchactions。你可以看看更多的例子here

0

我開始使用Redux,並且很喜歡這個概念,但是我真的被大量的樣板所困擾。我最終創建了actionware lib。基本上這裏就是你有actionware:

  • 沒有更多的行動創造者和動作類型,只是
  • 行動派遣其結果自動
  • 爲每
  • 行動
  • 錯誤狀態的行動(簡單功能)和減速器每一個異步的動作沒有多餘的代碼繁忙狀態(是的,沒有多餘的代碼!)
  • 撤銷行動