2009-07-23 79 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解決方案。不同的屏幕在他們自己的視圖堆棧中很好地定義,我使用狀態在它們之間切換。