Skip to content

Commit 0b51748

Browse files
committed
feat: <transition> support
1 parent 252587a commit 0b51748

File tree

14 files changed

+209
-58
lines changed

14 files changed

+209
-58
lines changed

demo/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
},
99
"dependencies": {
1010
"vue": "^2.6.11",
11-
"vue-router": "^3.2.0"
11+
"vue-router": "^3.2.0",
12+
"vue-router-keep-alive-helper": "^0.0.28"
1213
},
1314
"devDependencies": {
1415
"@vue/cli-plugin-router": "~4.5.13",

demo/src/App.vue

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,50 @@
11
<template>
22
<div id="app">
3-
<!-- <transition name="slide-left" > -->
3+
<transition :name="slideName">
44
<keep-alive>
55
<router-view/>
66
</keep-alive>
7-
<!-- </transition> -->
7+
</transition>
88
</div>
99
</template>
10+
<script>
11+
import createHelper from '../../dist/index.js'
12+
export default {
13+
data() {
14+
return {
15+
slideName: ''
16+
}
17+
},
18+
watch: {
19+
$route(to, from) {
20+
const helper = createHelper()
21+
helper.setTransitionNameHandler(()=>{
22+
return this.slideName
23+
})
24+
if (helper.isBacking) {
25+
this.slideName = "slide-right";
26+
} else {
27+
this.slideName = "slide-left";
28+
}
29+
},
30+
},
31+
}
32+
</script>
1033

1134
<style>
35+
* {
36+
margin :0;
37+
}
1238
#app {
1339
font-family: Avenir, Helvetica, Arial, sans-serif;
1440
-webkit-font-smoothing: antialiased;
1541
-moz-osx-font-smoothing: grayscale;
1642
text-align: center;
1743
color: #2c3e50;
1844
}
19-
45+
#app div{
46+
background-color: #fff;
47+
}
2048
#nav {
2149
padding: 30px;
2250
}
@@ -48,7 +76,7 @@
4876
z-index: 99;
4977
}
5078
51-
.slide-right-enter-from {
79+
.slide-right-enter {
5280
z-index: 1;
5381
transform: translate3d(-100%, 0, 0);
5482
}
@@ -58,7 +86,7 @@
5886
transform: translate3d(100%, 0, 0);
5987
}
6088
61-
.slide-left-enter-from {
89+
.slide-left-enter {
6290
transform: translate3d(100%, 0, 0);
6391
}
6492

demo/src/main.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import Vue from '../../debug/vue.js'
2+
// import Vue from 'vue'
23
import App from './App.vue'
34
import router from './router'
45

56
Vue.config.productionTip = false
67

7-
new Vue({
8+
const app = new Vue({
89
router,
910
render: function (h) { return h(App) }
10-
}).$mount('#app')
11+
})
12+
router.onReady(() => app.$mount('#app'))

demo/src/router/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Vue from '../../../debug/vue.js'
2+
// import Vue from 'vue'
23
import VueRouter from 'vue-router'
34
import Home from '../views/Home.vue'
45

@@ -39,6 +40,7 @@ const router = new VueRouter({
3940
})
4041

4142
import createHelper from '../../../dist/index.js'
43+
// import createHelper from 'vue-router-keep-alive-helper'
4244
createHelper({Vue, router});
4345

4446
export default router

demo/src/views/Home.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export default {
1515
HelloWorld
1616
},
1717
beforeCreate() {
18-
debugger
18+
// debugger
1919
console.log('home before create');
2020
},
2121
methods: {

demo/src/views/Info.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<div class="about">
2+
<div class="Info">
33
<h1>This is an Info page</h1>
44
</div>
55
</template>

demo/yarn.lock

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6515,6 +6515,11 @@ vue-loader@^15.9.2:
65156515
vue-hot-reload-api "^2.3.0"
65166516
vue-style-loader "^4.1.0"
65176517

6518+
vue-router-keep-alive-helper@^0.0.28:
6519+
version "0.0.28"
6520+
resolved "https://registry.npmmirror.com/vue-router-keep-alive-helper/-/vue-router-keep-alive-helper-0.0.28.tgz#2651f55bf1fe27bf5dfbe05ea3c72337ba82ec8e"
6521+
integrity sha512-5U+19Zb0wXh6NyU5dYnAmiT8HP1b5WZjhK+rirg+6WUJPlx4HgQm7La3oEpSFPrr5BL1xJDv+v2Je5N8nNUHdA==
6522+
65186523
vue-router@^3.2.0:
65196524
version "3.6.5"
65206525
resolved "https://registry.npmmirror.com/vue-router/-/vue-router-3.6.5.tgz#95847d52b9a7e3f1361cb605c8e6441f202afad8"

dist/helper.esm.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/helper.esm.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js

Lines changed: 85 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)