In Vaadin 8 we override UI.init() to create our user interface and override UI.refresh() to check if user has changed parameters in the url, if so, we rebuild page with new parameters otherwise we keep current. I see this feature as something we should enable for users to have without having to write lots of boilerplate.ģ. One option would be to default to then just not reusing the UI state, but also provide hooks for the application developers to handle this situation (or any UI refresh case) in the way they want to.Īnother option would be that we enable the application developers to pick route targets that would use "two-step-bootstrap" always meaning that there is two roundtrips to verify whether the UI/route was already active (similarly as in Framework by checking window name to match existing). Not sure how can we pick which UI state for /foo should be reused, from the first tab or second tab. refresh the second tab /foo -> what should happen ?.navigate tab to /bar -> /foo no effect on first tab.tab open with route /foo and make changes.if the user opens the same page in another (same) browser window/tab, the old UI will be discarded.when the user refreshes the page, the same UI state is used as what was previously opened.I think we could probably add a way to be able to keep the active route target state in place if wanted.
![vaadin ui browser vaadin ui browser](https://static.vaadin.com/directory/user9842/screenshot/file6555803742546342615_1519877832960Screen_Shot_2018-03-01_at_05_09_19.png)
Google works: if you search for something, follow a link from there and then open again, then your previous search query will not be there any more, but it will be retained if you either navigate back or open the search result in a new browser tab that you just close to get back to the search result. In that way, the user could get back to their previous filtering state by using the back button in their browser, whereas the application's own navigation would lead to a clean state.
![vaadin ui browser vaadin ui browser](https://vaadin.com/images/social-media/vaadinffs-banner.png)
users would show the unfiltered list of users whereas /users/foo would correspond to filtering the users by "foo".
![vaadin ui browser vaadin ui browser](https://i.stack.imgur.com/5EP3f.png)
It's more about being able to preserve the state of one view while another view is active.Īnother way of thinking of the users filtering example is that the state can be captured in the URL. I don't think that example has anything to do with since the page is not reloaded when navigating between multiple views inside the same application.