From: Eduardo San Martin Morote Date: Sun, 24 May 2020 14:33:33 +0000 (+0200) Subject: fix(scroll): avoid reusing scroll position X-Git-Tag: v4.0.0-alpha.13~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dfc1fb34a761138a3390ccd5a8a042863018222a;p=thirdparty%2Fvuejs%2Frouter.git fix(scroll): avoid reusing scroll position --- diff --git a/src/router.ts b/src/router.ts index 5edcb187..48f0a9c4 100644 --- a/src/router.ts +++ b/src/router.ts @@ -652,6 +652,7 @@ export function createRouter(options: RouterOptions): Router { pendingLocation = toLocation const from = currentRoute.value + // TODO: should be moved to web history? if (isBrowser) { saveScrollPosition( getScrollKey(from.fullPath, info.delta), diff --git a/src/scrollBehavior.ts b/src/scrollBehavior.ts index f0c69c04..f2defed2 100644 --- a/src/scrollBehavior.ts +++ b/src/scrollBehavior.ts @@ -123,7 +123,10 @@ export function saveScrollPosition( } export function getSavedScrollPosition(key: string) { - return scrollPositions.get(key) + const scroll = scrollPositions.get(key) + // consume it so it's not used again + scrollPositions.delete(key) + return scroll } // TODO: RFC about how to save scroll position