Я немного озадачен примерами, которые я нахожу для механизма истории GWT.История GWT. Состояние штата создает историю или историю в состоянии?
Взяв пример и запустив пример GWT History, это выглядит не очень хорошо.
История часто объясняется тем, что происходит в результате изменений в приложении.
Пример имеет несколько проблем:
исходное состояние, а также пустой маркер и маркер «page0»
-> «История» Назад показывает ту же страницу дважды «уходящая приложение «
История и состояние синхронизированы как-то косвенно.
- Выбор вкладки вызывает событие выбора, которое устанавливает новый токен. Настройки маркера приводят к изменению значения , которое снова выбирает ту же вкладку (?). Эта модель - это своего рода раздумье.
бы это было так неправильно, чтобы посмотреть на проблему с другой точки зрения?
Я думаю, что было бы намного чище всегда менять состояние в соответствии с токеном истории.
В этом случае 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");
}
});
Это каким-то образом, используя историю, чтобы управлять состоянием приложений.
Что в этом плохого, почему это делается по-другому?