]> git.ipfire.org Git - thirdparty/vuejs/router.git/commitdiff
fix(scroll): avoid reusing scroll position
authorEduardo San Martin Morote <posva13@gmail.com>
Sun, 24 May 2020 14:33:33 +0000 (16:33 +0200)
committerEduardo San Martin Morote <posva13@gmail.com>
Sun, 24 May 2020 14:33:33 +0000 (16:33 +0200)
src/router.ts
src/scrollBehavior.ts

index 5edcb1879797735052998bbb3c036bd50605bb62..48f0a9c42fdfc880a80d0251a7924a95978f5788 100644 (file)
@@ -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),
index f0c69c040789009f635a032f81f9d25ad5178d7f..f2defed22851d218b1cdb9dc105faae7078eb5e4 100644 (file)
@@ -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