我對GWT的歷史機制找到的例子有些困惑。GWT歷史記錄 - 州/州是否創建歷史或歷史結果?
尋找並運行示例GWT History它似乎不是很好。
歷史常常被解釋爲由應用程序中的更改導致的結果。
的例子有多個問題:
初始狀態,以及空令牌和令牌「頁0/0」
- >「歷史記錄」回到顯示在同一頁面兩次離開前」應用程序「
歷史和狀態在某種程度上是間接同步的。
- 選項卡選項會導致一個選擇事件,該事件設置一個新的令牌。設置令牌導致 歷史值更改,再次選擇相同的選項卡(?)。這種模式是一種心靈扭曲。
難道是錯的來看看從另一個角度看這個問題?
我認爲總是根據歷史記號改變狀態要容易得多。
在這種情況下,ValueChange
將執行「狀態呈現」。要改變狀態的按鈕不會直接執行,而是使用History.newItem()
方法,並使用valueChange
方法間接更改狀態。
例如
public void onValueChange(ValueChangeEvent<String> event) {
String token = event.getValue();
if(token.isEmpty()){
show("welcome");
}else if(token.equals("registration")){
show(token);
}
}
這要顯示的註冊按鈕:
welcome = new Button("Registration", new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
History.newItem("registration");
}
});
這在某種程度上利用歷史來驅動應用的狀態。
這是怎麼回事,爲什麼到處都是這樣?