vue-property-decorator

3,547 阅读1分钟

vue.cli3生成vue项目,选用TypeScript,引入vue-property-decorator库

@Component

beforeRouteEnter、beforeRouteLeave、beforeRouteUpdate

使用beforeRouteEnter、beforeRouteLeave、beforeRouteUpdate跟之前使用区别,需要使用Component.registerHooks方法注入钩子函数

<template>
...
</template>
import { Component, Prop, Vue } from 'vue-property-decorator';
Component.registerHooks([
  'beforeRouteUpdate',
  'beforeRouteLeave',
  'beforeRouteLeave'
])
@Component({})
export default class Hello extends Vue {
    beforeRouteUpdate (to, from, next) {
        // react to route changes...
        // don't forget to call next()
    }
    beforeRouteLeave (to, from, next) {
        // react to route changes...
        // don't forget to call next()
    }
    beforeRouteUpdate (to, from, next) {
        // react to route changes...
        // don't forget to call next()
    }
}
</script>

迭代组件,命名组件名称

迭代使用组件,如开发树形菜单组件

//HelloWorld.vue
<template>
...
    <treeList></treeList>
...
</template>
import { Component, Prop, Vue } from 'vue-property-decorator';
import treeList from '../components/treeList.vue'
@Component({})
export default class HelloWorld extends Vue {
}
</script>
//treeList.vue
<template>
...
        <treeList></treeList
...
</template>
import { Component, Prop, Vue } from 'vue-property-decorator';
@Component({
    name: "treeList"    //此处声明组件name
})
export default class treeList extends Vue {
}
</script>