Falcor Router 是否实现路由排名?

Does Falcor Router implement route ranking?

在研究 Faclor 路由器时,我非常喜欢 KeySets 的特性,它允许路由以任意组合匹配一组实体键,但这让我想知道路由排名。

如果我有路线:"titlesById[{integers:titleIds}]['name','year']"

和另一条路线:"titlesById[{integers:titleIds}]['name']"

当我只请求name键时,Falcor 路由器如何确定使用哪条路由。我担心的是,当访问多个键而不是单个键时,您可能有更有效的数据访问策略。

是也不是

它实现了路由优先级,含义如下:

特定按键:4 整数/范围:2 键:1

所以['name', 'year']['name']的优先级是等价的。

但是你的规格有问题。 Router 不允许 same 优先路由匹配相同的路径。因此以下路径优先 等价 ,因此会在 Router 构造时抛出错误。

{ route: 'titlesById[{integers:titleId}].name', get: ... },
{ route: 'titlesById[{ranges:titleId}].name', get: ... }, 
...

这将引发错误,因为范围和整数都匹配同一组传入数据(数字)并且它们都匹配相同的路由(titlesById、数字、名称)。这扩展到您的示例,您有两条路线匹配相同的路径,这不会发生(当然除非一条路线与 get 处理程序匹配,而另一条路线与 set 处理程序匹配)。