组件前面必须加上@Component装饰器

  1. <script lang="ts">
  2. import { Vue,Component } from 'vue-property-decorator';
  3. @Component
  4. export default class App extends Vue {
  5. msg:string = "hello vue";
  6. mounted():void{
  7. console.log("mounted")
  8. }
  9. }
  10. </script>

vue-ts中创建一个组件

创建一个组件

  1. 快捷方式: vbase-ts-class
  2. <template>
  3. <div>
  4. Hello Component
  5. </div>
  6. </template>
  7. <script lang="ts">
  8. import { Component, Vue } from "vue-property-decorator";
  9. @Component
  10. export default class Hello extends Vue {
  11. }
  12. </script>
  13. <style scoped>
  14. </style>

App.vue 导入组件

  1. import Hello from './components/Hello.vue'

需要在@Component注册

  1. @Component({
  2. components:{
  3. Hello
  4. }
  5. })

使用

  1. <Hello></Hello>

@Provide—data

等同于之前的data

  1. import { Vue, Component, Provide } from "vue-property-decorator"
  2. export default class App extends Vue {
  3. @Provide() list: string = "list";
  4. // msg:string = "hello vue";
  5. }

父组件传值给子组件

子组件设置动态属性,接收父组件传递过来的参数

  1. <Hello :data="child"></Hello>

在子组件的@Prop中注册

  1. <script lang="ts">
  2. import { Component, Vue,Prop } from "vue-property-decorator";
  3. @Component
  4. export default class Hello extends Vue {
  5. @Prop() data!:string;
  6. /* !这个数据是一定要传递的 */
  7. }
  8. </script>

使用