我正在使用 Flutter 开发 SDUI。我有一个与导航相关的主要问题。这个问题并不特定于任何特定框架,但由于我正在使用 Flutter 进行开发,所以我认为提及 Flutter 会很有用。
导航应该如何处理?我们应该使用框架级导航系统,还是应该使用堆栈实现自己的导航系统?
框架导航:如果我们使用框架级导航系统,我们只能使用在构建生成期间指定的预定义路由,例如(/homepage、/profile、/login 等)。如果我想在没有应用程序发布的情况下显示新路线,这可能是不可能的。
自己的导航:如果我们创建自己的导航系统,我们需要管理许多方面,类似于 Flutter、KMM 或 Jetpack Compose 处理的内容。我们需要实现正确的堆栈导航。在这种情况下,所有内容都将呈现在同一页面上。例如,如果我渲染主页,然后导航到个人资料页面,我们会将个人资料页面 JSON 推送到主页上,或者定义一些常规页面,例如 /homepage、/profile 等。
请找到这个例子。
目前,我们可以使用 JSON 从服务器生成 UI,并且对于导航,我们使用 Flutter 的导航系统。
我需要你的帮助。我该如何前进?
GoRouter 包就是您所需要的。
go_router
Flutter 的声明式路由包,使用 Router API 提供方便的、基于 url 的 API,用于在不同屏幕之间导航。您可以定义 URL 模式、使用 URL 进行导航、处理深层链接以及许多其他与导航相关的场景。