流行的Flutter Fluro package允许开发人员通过路由字符串在Flutter页面之间传递参数。例如:
collection/289/item/1224?view=grid
人们为什么要这样做?与通过对象传递参数相比,这种方法有很多缺点:
我可以想到通过路由传递所有参数的以下可能的优点:
这些优势今天都没有实现。 Flutter团队尚未决定如何重新启动Android应用程序(据我所知),Flutter Web仍然存在漏洞和生产速度缓慢。
那为什么人们实际上通过路线传递论点呢?人们为什么使用像Fluro这样的软件包?仅仅是为了潜在的未来利益,还是他们现在正在实现利益?
(我正在计划如何构造自己的应用程序。)
答案 0 :(得分:2)
Fluro优先考虑深层链接,当您的Web应用程序具有可以在Flutter中复制的一组路由时,就可以充分实现此优势。然后,如果有人安装了该应用程序,但通过手机访问了该网站,则可以将其无缝转发到该应用程序。
此外,在大型应用中,简单的route参数会迫使您使用高性能的存储库模式,因此您不必依赖于围绕路由传递模型。通常,这是编写应用程序的更好方法,因此它具有强制实施现代高性能架构的附带好处。
也就是说,就像任何技术决策一样,它也有其优点和缺点。如果您的特定用例与Fluro不匹配,则不一定是Fluro不好,而是您的需求与它不匹配。
我还没有研究的另一个软件包是auto_route
,我怀疑它会有益于那些决定不使用fluro
的项目
答案 1 :(得分:1)
我认为这个问题很大程度上遗漏了路由方程式的很大一部分,即深层链接。
当您在内部和应用(内部导航)之间进行路由时,在周围传递对象绝对是有意义的。 Fluro的下一版本将支持此方法。
但是,如果您要与外部源(如Web链接,URL方案等)进行交互,那么有时不希望或不愿意构造一个对象。 API通常包含指向资源(例如{https://my.api/products/55
)的URL。
对于这种情况,使用通配符或命名参数匹配非常有用。