我有一个应用程序,我目前正在使用一个视图堆栈来显示每个页面,我想知道这是正确的方式去,或者我应该使用不同的状态(或其他东西)。
该站点由一个菜单栏提供支持,菜单栏的顶级项为“主页”、“工具”、“支持”。在“工具”菜单下面是一个子菜单,子菜单中有“工具1”、“工具2”、“工具3”。当前,当用户单击“工具”子菜单中的任何工具时,我会从视图堆栈中调出一个子容器(每个子容器实际上都位于一个单独的组件中)。
这是正确的方法吗?还是应该使用状态为每个工具页面提供适当的元素?
我有一个应用程序,我目前正在使用一个视图堆栈来显示每个页面,我想知道这是正确的方式去,或者我应该使用不同的状态(或其他东西)。
该站点由一个菜单栏提供支持,菜单栏的顶级项为“主页”、“工具”、“支持”。在“工具”菜单下面是一个子菜单,子菜单中有“工具1”、“工具2”、“工具3”。当前,当用户单击“工具”子菜单中的任何工具时,我会从视图堆栈中调出一个子容器(每个子容器实际上都位于一个单独的组件中)。
这是正确的方法吗?还是应该使用状态为每个工具页面提供适当的元素?
3条答案
按热度按时间doinxwow1#
这取决于视图的不同程度。如果它们非常相似,则状态很好,因为它们有助于有效地重用大量已在基本组件中定义的标记。如果它们是非常不同的视图,则其他开发人员将难以维护状态,因为它不像每个视图的单独组件那样简单。
ViewStack还允许使用延迟示例化。这是由“creationPolicy”属性控制的。DI意味着您的应用将加载得更快,因为只有ViewStack的第一个子级将被初始化。当您导航到其他子级时,它们将按需示例化。
1bqhqjot2#
状态是一种可行的方法。您可以轻松地重用状态,并通过扩展基本状态来扩展它们的功能。
lzfw57am3#
正如cliff.meyers所言,如果屏幕之间的变化非常剧烈,那么就使用视图堆栈,因为复杂的状态转换将是一场维护噩梦。
我通常选择一个结合视图堆栈/状态的解决方案。不同的屏幕在它们自己的视图堆栈中定义得很好,我使用状态在它们之间切换。