2009-07-23 80 views
1

我有一个应用程序,我目前正在使用一个viewstack来显示每个页面,我想知道这是正确的路要走,还是应该使用不同的状态(或其他)。viewstacks vs flex中的状态?

该网站由一个菜单栏提供的首页,工具,支持的顶级项目。工具菜单下面是一个带有工具1,工具2,工具3的子菜单。目前,当用户点击“工具”子菜单中的任何工具时,我会从视图中调出一个子容器(每个子实际上都在一个分离组件中)。

这是正确的路要走,还是应该使用状态来为每个工具页面调出适当的元素?

回答

1

各国是要走的路。您可以通过扩展基本状态轻松地重用状态并扩展其功能。

5

这取决于视图有多不同。如果它们非常相似,那么状态很好,因为它们有助于有效地重用已经在基本组件中定义的很多标记。如果他们的观点截然不同,那么各州将很难为其他开发人员维护,因为它不像每个视图的单独组件那么简单。

此外ViewStack允许使用延迟实例化。这由“creationPolicy”属性控制。 DI意味着你的应用程序将加载得更快,因为只有ViewStack的第一个孩子将被实例化。在您导航到其他孩子时,他们会根据需求进行实例化。

+0

感谢您的信息brd6644 – 2009-07-24 06:25:03

+0

他表示,视图堆栈中的每个孩子都是一个组件,这意味着如果使用状态,则只有一个删除子项,然后是添加子项。这里没有恶梦。 除了易于实现和维护之外,ViewStack在使用状态方面没有优势。延期实例化是一项奖励。当使用状态时,状态添加的组件也会在该状态成为当前状态时被实例化。 – 2009-07-24 08:59:42

1

正如cliff.meyers所说,如果从屏幕到屏幕的变化非常激烈,请使用视图堆栈。进行复杂的状态转换将成为维护的噩梦。

我通常会选择组合viewstack/state解决方案。不同的屏幕在他们自己的视图堆栈中很好地定义,我使用状态在它们之间切换。