<script lang="ts">
// lang="ts" 可以使用ts
import { ref } from "vue";
import { Options, setup, Vue } from "vue-class-component";
import ImgCanvas from "./components/ImgCanvas.vue";
@Options({
components: {
ImgCanvas,
},
})
export default class App extends Vue {}
</script>
和之前的@component装饰器一个作用,用来标识这个Typescript类是一个vue组件
在@options装饰器中可以填写vue组件内包含的属性
@Options({
data(){
return{
flag: 1
}
}
})
export default class App extends Vue{
public flag:number = 2 // 这里的flag会把修饰器中声明的覆盖掉 class中的声明优先级高于修饰器
// 你也可以很方便的声明一个method
public hello(){
console.log("hello world");
}
}
可以再给你一个例子
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<h2>{{flag}}</h2>
<h2>{{initVar}}</h2>
...
</div>
</template>
...
<script lang="ts">
import {Options, prop, Vue} from 'vue-class-component';
@Options({
props: {
msg: String
},
data(){
return{
flag: "这是一个欢迎组件"
}
}
})
export default class HelloWorld extends Vue {
msg!: string;
flag!: string;
public initVar!: string;
public mounted(): void{
alert("挂载成功")
this.initVar = "测试"
}
}
</script>
补充一下在class内部声明变量直接
public initVar = ""
就行了,不需要声明类型
大括号是部分映入,看样子像是引了个组件???
后里写,这vue3 ts版本我是真的看不懂啊