Breeze.js和状态管理

时间:2019-12-14 14:31:32

标签: angular breeze ngrx

我是Breeze.js的新手,但是使用过NgRX。

在我的一个被认为是大型项目(开发时间为6个月)的项目中,我的客户有一个使用Breeze.js的特殊要求。

我阅读了Breeze.js的文档。我看到的主要优点是Breeze使Angular前端应用程序可以使用丰富的架构对api服务器执行GET和POST查询。

例如

var query = new breeze.EntityQuery()
    .from("Products")
    .where("Category.CategoryName", "startswith", "S");

微风还可以用于管理前端的UI和实体状态,例如NgRX和NgRX实体或NgRX数据吗?

请咨询。

1 个答案:

答案 0 :(得分:3)

是的,Breeze的恕我直言要好得多。 (我是Breeze的维护者之一。)

微风不适用于管理UI状态。它用于管理实体,尤其是相关实体。

微风维护实体的缓存。 Breeze跟踪高速缓存中每个实体的状态(添加,修改,删除,不变)。

修改实体后,它会跟踪该实体来自服务器时的原始值,以便您可以确定更改的内容并根据需要还原更改。

Breeze使用元数据来了解实体之间的关系。 Customer个具有Order个与OrderLineItem个相关的Product个。如果您查询Customers,然后再查询Orders,则微风会自动在高速缓存中挂接实体关系,以便Customer将具有Orders,每个Order将具有Customer。您也可以一次查询几种实体类型,Breeze会自动将它们连接起来。

对实体进行更改时,Breeze会跟踪哪些实体已更改。然后,您可以一次保存所有更改的实体。

我认为Breeze丰富的查询功能虽然不错,但与实体管理相比是一个相对较小的功能。

显然,我可以继续。但是我已经尝试了NgRx Data(我知道维护者),并且Breeze更加强大且易于使用。

相关问题