Vue - 為 props 預設型別及值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Vue.component('my-component', {
props: {
// 基礎的類型檢查 (`null` 和 `undefined` 會通過任何型別驗證)
propA: Number,

// 多個可能的型別
propB: [String, Number],

// 必填的 String
propC: {
type: String,
required: true
},

// 帶有預設值的 Number
propD: {
type: Number,
default: 100
},

// 帶有預設值的物件
propE: {
type: Object,
// 物件和陣列預設值必須從一個 factory function 取得
default: function () {
return { message: 'hello' }
}
},

// 自定義驗證函數
propF: {
validator: function (value) {
// 這個值必須符合下列字符串中的一個
return ['success', 'warning', 'danger'].indexOf(value) !== -1
}
}
}
})

參考文件