Skip to content

Commit dbc2c10

Browse files
committed
go to the same route will be set the same key, fix #21
1 parent 398f344 commit dbc2c10

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

examples/src/pages/Index.vue

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@
33
<div class="index">
44
<p>This is the <b>index</b> page</p>
55
<p>random number: {{random}}</p>
6-
<router-link to="list">go to list page</router-link>
6+
<p>
7+
<router-link to="/">go to index page</router-link>
8+
</p>
9+
<p>
10+
<router-link to="list">go to list page</router-link>
11+
</p>
712
</div>
813
</page>
914
</template>

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@
3535
"url": "https://github.com/zack24q/vue-navigation/issues"
3636
},
3737
"homepage": "https://github.com/zack24q/vue-navigation#readme",
38-
"dependencies": {},
38+
"dependencies": {
39+
"lodash": "^4.17.4"
40+
},
3941
"devDependencies": {
4042
"anywhere": "^1.4.0",
4143
"autoprefixer": "^6.7.2",

src/index.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import isEqual from 'lodash/isEqual'
12
import Routes from './routes'
23
import Navigator from './navigator'
34
import NavComponent from './components/Navigation'
@@ -25,7 +26,15 @@ export default {
2526
router.beforeEach((to, from, next) => {
2627
if (!to.query[keyName]) {
2728
const query = { ...to.query }
28-
query[keyName] = genKey()
29+
// go to the same route will have same key
30+
if (to.path === from.path && isEqual(
31+
{ ...to.query, [keyName]: null },
32+
{ ...from.query, [keyName]: null },
33+
) && from.query[keyName]) {
34+
query[keyName] = from.query[keyName]
35+
} else {
36+
query[keyName] = genKey()
37+
}
2938
next({ path: to.path, query, replace: replaceFlag || !from.query[keyName] })
3039
} else {
3140
next()

0 commit comments

Comments
 (0)