假設我的組件不需要局部狀態來簡化本地組件標誌,這些標誌不需要污染我的存儲,更不用說需要調度程序和動作處理程序的所有代碼開銷。地方國家是否因反應減少而避免?我沒有看到我的用例的變通辦法,除了把所有東西都放到我的店裏 - 太多的工作了。如何在react-redux中將組件的作用域綁定到mapStateToProps?
0
A
回答
0
回答你的問題:是的,本地狀態被反應減少了。
redux的哲學是,你的組件純粹是你的應用程序狀態的視圖。他們自己不應該持有國家。
但是,在您感到惱怒之前,您應該注意,關於REDX的一大優點是該商店很適合使用。這只是一個狀態樹,你編寫的任何reducer只需要處理它自己的那部分樹。我有一些減速機在我的應用程序,都是五行:
export default const isFullScreen = (state = false, action = null) => {
if (action && action.type === actions.TOGGLE_FULL_SCREEN) {
return !state;
}
return state;
};
把一切,即使是小東西的好處,在你的店也很多。其中最大的一個是,任何其他組件都可以通過mapStateToProps
知道任何其他組件的狀態。如果你依賴當地的國家,那透明度就會消失,事情會(並且確實)不同步。另一個好處是,你可以實現很酷的時間旅行的東西,在這裏你可以從狀態歷史記錄中推送和彈出狀態快照,並通過應用程序中的動作進行回退和轉發(也可以通過本地狀態消失)。
如果在一天結束時,這還不足以說服你將所有東西都放在商店中,那麼仍然可以使用本地狀態而不會破壞重複。我不推薦它。
祝你好運!
相關問題
- 1. 在組件中傳遞綁定到transcluded作用域
- 2. AngularJS:如何將對象的屬性綁定到作用域
- 3. SQLAlchemy:如何將作用域會話綁定到請求
- 4. $ templateCache fancybox,如何將變量綁定到控制器作用域
- 5. 如何將SecurityManagerService綁定到安全域
- 6. 如何將域名綁定到node.js?
- 7. 如何將指令綁定到VueJS中的自定義組件?
- 8. 如何在React中的高階組件中定義作用域?
- 9. 如何將ajax事件綁定到primefaces中的selectManyMenu組件
- 10. 如何在angular2(dart)中將常量綁定到目標組件?
- 11. 將HTML綁定到Angular UI中的作用域popup
- 12. 如何將數據傳遞到嵌套組件的作用域?
- 13. 如何將wx.Choice組件中的項目綁定到函數?
- 14. Xamarin將綁定數據綁定到ListView中的網格組件
- 15. 如何在視圖內將字符串綁定到作用域var?
- 16. 如何將socket.io(在nodejs中)的事件處理程序綁定到我自己的作用域?
- 17. 如何將dataSource綁定到組合框?
- 18. 如何將DataRows數組綁定到DataGridView
- 19. 將DBGrid綁定到自定義組件
- 20. 如何將標籤的內容綁定到指令的作用域?
- 21. 如何從一個子組件作用域中訪問父組件作用域?
- 22. 如何使用條件將數組綁定到dropdownlist
- 23. 組件(unscoped)可能無法引用作用域綁定
- 24. 如何調用mapStateToProps
- 25. 將函數綁定到其他作用域上的onClick
- 26. javascript中的綁定和作用域
- 27. 如何將中繼器綁定到自定義類的數組?
- 28. 如何將動作參數綁定到存儲在Spring MVC 3.x的會話作用域中的對象?
- 29. 爲什麼不定義ReactRedux?
- 30. 如何將組件中的數據綁定到使用角度2 cli的tinymce
謝謝,這是有道理的,我希望在react-redux模塊中記錄得更清楚一點,我希望它可以禁用反應組件的本地狀態,從而使該構造非常清晰。 – LMS5400
這絕對需要一些習慣。我發現它有助於嘗試使我的組件具有純功能性。和in一樣,不要使用ES6'class'或'React.createComponent',而應將組件編寫爲一個函數,其中道具以參數形式出現。這將有助於您逐步淘汰使用本地狀態。 – Ian
經過一些更多的修補和轉換我的應用程序使用這一點後,我一路回來!我只是不喜歡嘗試編寫減速器和處理程序,以便我在此過程中所做的每一個小改動。我想要一個靈活的,輕量級的組件,我真的希望私人狀態。 我正在爲我的數據庫和一些幫助變量的數據保留我的redux商店,除此之外,其餘的都是私人的,這使得處理起來更容易。 – LMS5400