С состояниями вы можете иметь объекты в каждом состоянии с одинаковым идентификатором - это невозможно сделать с помощью стека просмотра. Обычно состояния используются, когда группа объектов совместно используется различными «состояниями» или «представлениями». Так, например, вы можете иметь текстовый ввод в каждом из ваших состояний и дать каждому одинаковый идентификатор «username». Когда вы ссылаетесь на идентификатор «username», он будет использовать объект в текущем включенном состоянии. Если вы попытаетесь сделать это с помощью стека просмотра, он выдаст сообщение об ошибке, указав, что вы определили идентификатор «username» несколько раз.
Итак, в заключение ... используйте состояния при добавлении или удалении компонентов из набора компонентов, совместно используемых в каждом состоянии. Используйте видовой стек, когда каждый вид отличается, и не делитесь компонентами.