我想了解標準的角度4構建與使用角度+ ngrx之間的區別?標準角度和角度+ ngrx有什麼區別?
回答
當你說ngrx時,你是否在說ngrx商店?
如果是這樣,這是Redux專門用於Angular的實現。可能值得通過Redux introduction來了解它的全部內容。
一般來說,它是一種控制應用程序狀態和整個應用程序中數據流的模式。
以一個角度分量爲例。組件MyComponent
加載一些數據「產品」。現在,無論何時,如果這個數據(狀態)存儲在MyComponent
中,它就會丟失。所以,無論何時創建組件,我們都會重新加載它。效率不高,對我們不耐煩的用戶不好。
也許MyOtherComponent
也獲得產品!它擁有它的產品清單。但用戶可以在這裏編輯product.name
。狀態已被修改MyOtherComponent
,而不知道MyComponent
- 所以它仍然顯示舊名稱。我們可以讓每個人都擁有對另一個人的引用,或者讓父母獲得數據 - 但這是我們大型網絡中所有組件的開始。如果我們想要改變任何事情,這不是一個好消息。
解決方案是注入一個服務,MyProductsService
處理要做的事情(讓我們稱之爲動作?),如loadData()
,並將該狀態存儲在中央位置。
現在,當有人需要它時,他們會詢問MyProductsService
,並加載它並提供數據。當有人修改它時,他們必須回到MyProductsService
,然後就可以......啊。請看,MyProductService
如何告訴它的依賴關係某人改變了狀態? MyProductsService.products
已更新,但它需要將該更改「推」到MyComponent
和MyOtherComponent
。
這裏是NgRx(RxJS爲Angular設計)的用處。它使用Observable Pattern來管理「推送」數據。當有人想要products
時,它作爲Observable提供,並且MyComponents
訂閱更新。當它發生變化時,products
觀測值會發出新的值,每個人都很高興。
現在,畢竟這已經結束了,你最終會創建一些看起來有點像Redux的東西,但它是自定義的 - 可能有錯誤,未經測試,並且你花費了數小時的時間。
因此,您可以隨時使用已經由真正聰明的人編寫的版本,並通過有用的教程進行徹底測試。它很好地遵循了最佳實踐。與之互動的方式(變異狀態)非常嚴格,因此可以防止不必要的副作用。數據以可預測,可測試和可重複的方式從頂端向下流動。
- 1. 角度2和角度輸入有什麼區別?
- 2. 通過nuget安裝角度js和角度js core有什麼區別?
- 3. bootstrap方法和run方法在角度上有什麼區別?
- 4. 角度1.4.3中的$ http longhand和shorthand有什麼區別?
- 5. 角度2.0.0-rc4和Angular 2.0.0有什麼區別
- 6. 從SOA角度來看Registry和Repository之間有什麼區別?
- 7. 角度組件:單向和屬性綁定有什麼區別?
- 8. 精度和刻度有什麼區別?
- 9. 長度和長度()有什麼區別?
- 10. 獨角獸和unicorn_rails有什麼區別?
- 11. NGRX商店的角度與角度通用商品
- 12. 角度區域
- 13. symfony2角色類中的角色和名稱有什麼區別?
- 14. 角度和非角度的量角器
- 15. 角度@NGRX中三個點的含義
- 16. dotnet cli和角度cli基本項目模板之間有什麼區別?
- 17. 從設計的角度來看,Log()和Log(LogLevel)之間有什麼區別嗎?
- 18. 從開發人員的角度觀看和下載有什麼區別?
- 19. 從內核的角度來看,GLI和CLI在Linux中有什麼區別
- 20. 三角和角度
- 21. Angular Js:這兩個角度js之間的區別是什麼?
- 22. 角度數據表dtInstance.reloadData()與dtInstance.rerender()之間的區別是什麼
- 23. 角度2:什麼使服務成爲「外部」角區域?
- 24. 標準庫和標準模板庫有什麼區別?
- 25. 飽和度和亮度有什麼區別?
- 26. 角度通過npm的標準結構
- 27. 計算角度的標準偏差?
- 28. 角度和角度材料[$ injector:modulerr]
- 29. 使用角度和角度路線擴展動態標題
- 30. 有角度的單引號做什麼?
'ngrx'是一個反應式庫框架,它爲您的組件增加了'redux'外觀。 – Aravind