File tree Expand file tree Collapse file tree 3 files changed +50
-17
lines changed Expand file tree Collapse file tree 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';
33import router from './router' ;
44import store from './store' ;
55
6+ import { Component } from 'vue-property-decorator' ;
7+
8+ Component . registerHooks ( [
9+ 'beforeRouteEnter' ,
10+ 'beforeRouteLeave' ,
11+ 'beforeRouteUpdate'
12+ ] ) ;
13+
614Vue . config . productionTip = false ;
715
816new Vue ( {
Original file line number Diff line number Diff line change 55</template >
66
77<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' ;
910
1011@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+ }
1233
1334 </script >
Original file line number Diff line number Diff line change 11import Vue from 'vue' ;
2- import Router from 'vue-router' ;
2+ import VueRouter , { RouteConfig } from 'vue-router' ;
33import Home from '@/pages/home/Home.vue' ;
44
5- Vue . use ( Router ) ;
5+ Vue . use ( VueRouter ) ;
66
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
2022} ) ;
23+
24+ export default router ;
You can’t perform that action at this time.
0 commit comments