Fix: greedly pop the buffer
This commit is contained in:
parent
3b24e6a928
commit
22748d0e18
11
js/router.js
11
js/router.js
|
@ -46,7 +46,6 @@ const router = (() => {
|
||||||
*/
|
*/
|
||||||
if (buffer.length > 1) {
|
if (buffer.length > 1) {
|
||||||
if (!hash && !buffer[buffer.length - 2].includes('#') || buffer[buffer.length - 2].endsWith(hash)) {
|
if (!hash && !buffer[buffer.length - 2].includes('#') || buffer[buffer.length - 2].endsWith(hash)) {
|
||||||
buffer.pop();
|
|
||||||
history.back();
|
history.back();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -63,10 +62,16 @@ const router = (() => {
|
||||||
}
|
}
|
||||||
|
|
||||||
function update(replace) {
|
function update(replace) {
|
||||||
if (!buffer.length || buffer[buffer.length - 1] !== location.href && !replace) {
|
if (!buffer.length) {
|
||||||
buffer.push(location.href);
|
buffer.push(location.href);
|
||||||
} else if (buffer.length && replace) {
|
} else if (buffer[buffer.length - 1] === location.href) {
|
||||||
|
return;
|
||||||
|
} else if (replace) {
|
||||||
buffer[buffer.length - 1] = location.href;
|
buffer[buffer.length - 1] = location.href;
|
||||||
|
} else if (buffer.length > 1 && buffer[buffer.length - 2] === location.href) {
|
||||||
|
buffer.pop();
|
||||||
|
} else {
|
||||||
|
buffer.push(location.href);
|
||||||
}
|
}
|
||||||
for (const {options, callback} of watchers) {
|
for (const {options, callback} of watchers) {
|
||||||
let state;
|
let state;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user