基於typescript編寫vue的ts文件語法模板


 1 <template>
 2   <div>
 3     <input v-model="msg">
 4     <p>prop: {{ propMessage }}</p>
 5     <p>msg: {{ msg }}</p>
 6     <p>helloMsg: {{ helloMsg }}</p>
 7     <p>computed msg: {{ computedMsg }}</p>
 8     <Hello ref="helloComponent" />
 9     <World />
10     <button @click="greet">Greet</button>
11   </div>
12 </template>
13 
14 <script lang="ts">
15 import Vue from 'vue'
16 import Component from '../lib/index'
17 import Hello from './Hello.vue'
18 import World from './World'
19 // We declare the props separately
20 // to make props types inferable.
21 const AppProps = Vue.extend({
22   props: {
23     propMessage: String
24   }
25 })
26 @Component({
27   components: {
28     Hello,
29     World
30   }
31 })//這里就算沒有component也要保留"@Component",否則報錯
32 export default class App extends AppProps {
33   // data數據改為屬性的形式
34   msg: number = 123
35   // use prop values for initial data
36   helloMsg: string = 'Hello, ' + this.propMessage
37   // lifecycle hook
38   mounted () {
39     this.greet()
40   }
41   // computed:計算屬性改為前面加get關鍵字
42   get computedMsg () {
43     return 'computed ' + this.msg
44   }
45   // method:方法就不用再寫在methods里了,直接以類方法形式書寫
46   greet () {
47     alert('greeting: ' + this.msg)
48     this.$refs.helloComponent.sayHello()
49   }
50   // dynamic component
51   $refs!: {
52     helloComponent: Hello
53   }
54 }
55 </script>

更多相關代碼示例看這里:https://github.com/vuejs/vue-class-component/tree/master/example


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM