创建新屏幕还是检索现有屏幕?

时间:2019-02-25 00:44:40

标签: flutter

在使用Flutter导航器时,我不知道什么是创建屏幕的正确方法。

例如,我有一个主屏幕和一个产品屏幕。应用加载后,创建主页,然后单击那里的按钮以转到产品屏幕,从产品我可以返回主页。

在这种情况下,导航器堆栈中有两个屏幕。如果我转到第三个屏幕,然后单击抽屉列表中的“产品”菜单,它将创建一个新的“产品”屏幕。现在,堆栈中有两个产品屏幕。 我的问题是:

  1. 在堆栈中具有同一个屏幕的多个实例似乎很正常,对吧?

  2. 始终只在一个屏幕中保留一个屏幕的一个实例是个好主意吗?

  3. 如果我们必须在堆栈中具有同一个屏幕的多个实例,那么只加载一次初始数据是否明智?例如,在这种情况下,将产品列表保存在某处并且每次创建新的“产品”屏幕时都不要从服务器提取数据是一种好习惯吗?

谢谢

1 个答案:

答案 0 :(得分:0)

  

1,看来在堆栈中具有同一个屏幕的多个实例是正常的,对吧?

不,具有同一屏幕的多个实例是不正常的。

  

2,始终将一个屏幕的一个实例仅保留在堆栈中是个好主意吗?

是的,可以通过推和弹出来实现。推送将在堆栈上添加一个新实例,弹出将删除顶部堆栈。返回上一页时,最好使用pop。

  

3,如果必须在堆栈中具有同一屏幕的多个实例,只加载一次初始数据是否明智?

取决于数据。如果整个过程都是可变的,则仅加载一次是不明智的。如果它在应用程序的整个生命周期中都是持久的,请使用“共享首选项”插件进行存储。如果为常数,最好将其存储在本地数据库中。