File tree 3 files changed +50
-17
lines changed
3 files changed +50
-17
lines changed Original file line number Diff line number Diff line change @@ -3,6 +3,14 @@ import App from './App.vue';
3
3
import router from './router' ;
4
4
import store from './store' ;
5
5
6
+ import { Component } from 'vue-property-decorator' ;
7
+
8
+ Component . registerHooks ( [
9
+ 'beforeRouteEnter' ,
10
+ 'beforeRouteLeave' ,
11
+ 'beforeRouteUpdate'
12
+ ] ) ;
13
+
6
14
Vue . config . productionTip = false ;
7
15
8
16
new Vue ( {
Original file line number Diff line number Diff line change 5
5
</template >
6
6
7
7
<script lang="ts">
8
- import { Component , Vue } from ' vue-property-decorator' ;
8
+ import { Component , Vue , Watch } from ' vue-property-decorator' ;
9
+ import { Route } from ' vue-router' ;
9
10
10
11
@Component
11
- export default class About extends Vue {}
12
+ export default class About extends Vue {
13
+ @Watch (' $route' , { immediate: true })
14
+ private changeRouter(route : Route ) {
15
+ console .log (' route' , route );
16
+ }
17
+
18
+ private beforeRouteEnter(to : Route , from : Route , next : () => void ): void {
19
+ console .log (' beforeRouteEnter' , to , from , next );
20
+ next (); // 没有next将不会进入路由内部,跟vue文档用法一致
21
+ }
22
+
23
+ private beforeRouteUpdate(to : Route , from : Route , next : () => void ): void {
24
+ console .log (' beforeRouteUpdate' ); // 暂时不生效,版本问题
25
+ next ();
26
+ }
27
+
28
+ private beforeRouteLeave(to : Route , from : Route , next : () => void ): void {
29
+ console .log (' beforeRouteLeave' );
30
+ next ();
31
+ }
32
+ }
12
33
13
34
</script >
Original file line number Diff line number Diff line change 1
1
import Vue from 'vue' ;
2
- import Router from 'vue-router' ;
2
+ import VueRouter , { RouteConfig } from 'vue-router' ;
3
3
import Home from '@/pages/home/Home.vue' ;
4
4
5
- Vue . use ( Router ) ;
5
+ Vue . use ( VueRouter ) ;
6
6
7
- export default new Router ( {
8
- routes : [
9
- {
10
- path : '/' ,
11
- name : 'home' ,
12
- component : Home
13
- } ,
14
- {
15
- path : '/about' ,
16
- name : 'about' ,
17
- component : ( ) => import ( /* webpackChunkName: "about" */ '@/pages/about/About.vue' )
18
- }
19
- ]
7
+ const routes : Array < RouteConfig > = [
8
+ {
9
+ path : '/' ,
10
+ name : 'home' ,
11
+ component : Home
12
+ } ,
13
+ {
14
+ path : '/about' ,
15
+ name : 'about' ,
16
+ component : ( ) => import ( /* webpackChunkName: "about" */ '@/pages/about/About.vue' )
17
+ }
18
+ ] ;
19
+
20
+ const router = new VueRouter ( {
21
+ routes
20
22
} ) ;
23
+
24
+ export default router ;
You can’t perform that action at this time.
0 commit comments