forked from vuejs/vue-router
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.js
103 lines (93 loc) · 2.88 KB
/
app.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
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
const RouteX = { template: '<div>Route X</div>' }
const RouteY = { template: '<div>Route Y</div>' }
const RouteZ = { template: '<div>Route Z</div>' }
const Route1 = { template: '<div>Route 1</div>' }
const Route2 = { template: '<div>Route 2</div>' }
const Route3 = { template: '<div>Route 3</div>' }
const Route4 = { template: '<div>Route 4</div>' }
const routes1 = [
{ path: '/common1', name: 'common1', component: RouteX },
{ path: '/common2', name: 'common2', component: RouteZ },
{ path: '/route-1', name: 'route1', component: Route1 },
{ path: '/route-2', name: 'route2', component: Route2 }
]
const routes2 = [
{ path: '/common1', name: 'common1', component: RouteY },
{ path: '/common2', name: 'common2', component: RouteZ },
{ path: '/route-3', name: 'route3', component: Route3 },
{ path: '/route-4', name: 'route4', component: Route4 }
]
const router = new VueRouter({
mode: 'history',
base: __dirname,
routes: []
})
new Vue({
router,
template: `
<div id="app">
<h1>Replace Routes</h1>
<div style="display: inline-block;">
<ul class="set1">
<li><router-link to="/common1">
/common1 (X)
</router-link></li>
<li><router-link to="/common2">
/common2 (Z)
</router-link></li>
<li><router-link to="/route-1">
/route-1
</router-link></li>
<li><router-link :to="{ name: 'route2' }">
/route-2 (named)
</router-link></li>
</ul>
<button @click="loadRoutes1" class="btn1">Load routes set 1</button>
</div>
<div style="display: inline-block;">
<ul class="set2">
<li><router-link to="/common1">
/common1 (Y)
</router-link></li>
<li><router-link to="/common2">
/common2 (Z)
</router-link></li>
<li><router-link to="/route-3">
/route-3
</router-link></li>
<li><router-link :to="{ name: 'route4' }">
/route-4 (named)
</router-link></li>
</ul>
<button @click="loadRoutes2" class="btn2">Load route set 2</button>
</div>
<button @click="removeAllRoutes" class="btn3">Remove all routes</button>
<br/>
<br/>
Current route set: <span class="route-set">{{ routeSet }}</span>
<br/>
Current route content:
<div class="view"><router-view :style="{ display: 'inline-block' }"></router-view></div>
</div>
`,
data () {
return { routeSet: null }
},
methods: {
loadRoutes1 () {
this.routeSet = 'set1'
router.replaceRoutes(routes1)
},
loadRoutes2 () {
this.routeSet = 'set2'
router.replaceRoutes(routes2)
},
removeAllRoutes () {
this.routeSet = null
router.replaceRoutes([])
}
}
}).$mount('#app')