ability to check push vs replace in navigation guard
kerlor opened this issue · 3 comments
What problem does this feature solve?
I am trying to create a single page mobile app with a push/pop/modal navigation. This navigation behavior is similar to the iOS SDK's navigation controller behavior.
To get this to work in my code I have added a new field(navigationType: push | pop | modal) in the params object. Then in router.afterEach I check for this new field.
It would be nice to have this be part of the vue router api. Considering the push/replace is already separate API.
What does the proposed API look like?
usage might be:
router.afterEach((to, from) => {
if(to.navigationType == 'push'){
} else if(to.navigationType == 'replace'){
}
}
Features are also needed in beforeEach.
As many +1's as I can give.
I need this in scrollBehavior
When you have a navigation guard that needs to stick on a part on the URL, no matter if it's a push or replace, this becomes very hard to do transparently.
If we follow @posva's suggestion, suddenly all locations that use a replace also need to pass on another navigation prop, to indicate that this was a replace to the navigation guards. This seems to be the only way for our navigation guard next(to)
call to be a push or replace based on the initial navigation that triggered the guard.