vue+typescript 无法使用 beforeRouteEnter()

main.ts中配置如下
import Component from 'vue-class-component';
Component.registerHooks([

'beforeRouteEnter',
'beforeRouteLeave',
'beforeRouteUpdate',

]);

但是在组件中使用 beforeRouteEnter()不执行
private beforeRouteUpdate(to: Route, form: Route, next: () => void): void{

console.log(11)
next();

}

阅读 11k
4 个回答

在新的js文件中执行

//registerHooks.js
import Component from 'vue-class-component'

Component.registerHooks([
 'beforeRouteEnter',
 'beforeRouteLeave',
 'beforeRouteUpdate'     
])

然后在main.ts 最上面引入registerHooks.js


    import { Component } from 'vue-property-decorator';
    
    Component.registerHooks([
      'beforeRouteEnter',
    ])

如果只是想更新视图的话可以考虑监听路由

    @Watch('$route')
    routeWatch() {
        this.loadData();
    }

我用的是vue-cli3,@Watch是

import { Component, Prop, Vue, Watch } from 'vue-property-decorator';
推荐问题