我想了解标准的角度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