-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmain.js
106 lines (91 loc) · 5.4 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
// Define some components
var home = Vue.extend({
template: '<div class="p1">首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/>首页<br/></div>'
})
var page2 = Vue.extend({
template: '<div class="p2">页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二<br/>页面二</div>'
})
var page3 = Vue.extend({
template: '<div class="p3">页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三<br/>页面三</div>'
})
var page4 = Vue.extend({
template: '<div class="p4">页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四<br/>页面四</div>'
})
var page5 = Vue.extend({
template: '<div class="p5">页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五<br/>页面五</div>'
})
var App = Vue.extend({
data:function(){
return {
effect:'next',
changePage:false
}
}
})
var router = new VueRouter();
//过渡代码放到最下面的时候,有时候并不会执行钩子函数的方法,放到这里就可以了。
Vue.transition('next', {
beforeEnter: function (el) {
router.app.changePage = true;
},
enter:function(){
},
afterEnter: function (el) {
router.app.changePage = false;
}
});
Vue.transition('prev', {
beforeEnter: function (el) {
router.app.changePage = true;
},
enter:function(){
},
afterEnter: function (el) {
router.app.changePage = false;
}
});
router.map({
'/': {
name:'home',
component: home
},
'/page2': {
name:'page2',
component: page2
},
'/page3': {
name:'page3',
component: page3
},
'/page4': {
name:'page4',
component: page4
},
'/page5': {
name:'page5',
component: page5
}
})
//全局放一个routlist
window.routeList = [];
router.beforeEach(function(transition){
if(routeList.length > 1 && transition.to.name==routeList[routeList.length-2]){
router.app.effect='prev';//返回
routeList.splice(routeList.length-1,1);
setTimeout(function(){
//这里加上延迟是要在afterEach之后在执行
transition.next()
},15);
return;
}
router.app.effect='next';//前进
routeList.push(transition.to.name);
transition.next();
});
router.afterEach(function(transition){
//这里必须要加上, 此钩子函数会在beforeEach之后马上执行,没有这句会导致
//当你浏览顺序为,首页->页面二->页面三
//此时点击页面二正常返回,然后再次选择页面三,本应该是前进,结果还是返回。
router.app.effect='next';//重置前进
});
router.start(App, '#app');