gpt4 book ai didi

flutter - 在 Flutter 中使用 push 与 pushNamed 的优缺点

转载 作者:行者123 更新时间:2023-12-05 07:19:46 26 4
gpt4 key购买 nike

谁能在 Flutter 中概述 pushpushNamed 的优缺点?

做一些研究,我唯一能找到的是 this GitHub issue要求同样的事情。

这是我的理解:

推送

  • 不使用字符串,因此减少了输错路线的可能性。
  • 在其构造函数中将参数作为参数传递

pushNamed

  • 使用字符串,但这些可以设置为常量然后引用
  • 通过创建对象并从中提取来传递参数

我应该使用哪一个?推荐哪一个?是否取决于特定的用例/场景?

我可以看到,如果您要将大量信息传递到新屏幕,那么使用对象会更容易,但我倾向于看到更频繁地使用 push

感谢您的帮助。

最佳答案

如果您希望在网络上发布您的应用程序,出于某些原因,pushNamed() 优于 push()。

导航在网络应用程序上按预期工作

如果您将路由设计为接受来自 URL 路径的参数或作为查询参数,则无需担心刷新页面时会发生奇怪的事情。如果您使用 push() 进行导航,刷新网页将导致许多问题,因为传入的参数不会在刷新过程中保留。

声明式导航更容易

命令式路由(例如,通过推送和弹出路由创建导航堆栈的路由类型)已知会导致 issues with browser history .这是 Navigator 2.0 和更新的路由库(如 go_router)的原因之一。专注于声明式路由(例如,你告诉 Flutter 导航堆栈应该是什么样子的路由类型)。命名路由鼓励您倾向于声明式路由。

深度链接有效

由于每个路由都已命名并从 URL 路径中提取所有必需的参数,因此您通常可以深层链接到应用中的内容,而无需执行太多其他操作。

看官方Flutter docs获取(一点)更多信息。

关于flutter - 在 Flutter 中使用 push 与 pushNamed 的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57711463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com