案列:价格的增加,拿到数据必须要做验证 防止数据是string型
使用props: 验证
注意:
<body>
<div id="app">
<Father></Father>
</div>
<template id="father">
<div>
<p>这个是父组件</p>
<Son :m = "m" :n = "n"></Son>
</div>
</template>
<template id="son">
<div>
<p>这个是子组件</p>
<p> {{ m }}</p>
<p> {{ n+200 }} </p>
</div>
</template>
</body>
<script>
Vue.component('Father',{
template : "#father",
data(){
return {
m: 300,
n: 200
}
}
})
Vue.component("Son",{
template : "#son",
props: {
'm': Number,
'n': {
validator(val){
return val >150
}
}
}
})
new Vue({
}).$mount('#app')
</script>
maxtext: {
type: Number,
default: 3,
validator: function (value) {
// 这个值必须匹配下列字符串中的一个
return value > 0;
},
},
derection: {
type: String,
default: "right",
validator: function (value) {
// 这个值必须匹配下列字符串中的一个
return ["left", "right", "top", "bottom"].indexOf(value) !== -1;
},
},
updateVehicleTime: {
type: Number,
default: 0,
validator(val) {
return val === 0 || val >= 15;
}
},
updateVehicleTime: {
type: Number,
default: 0,
validator(val) {
return val === 0 || val >= 15;
}
},
direction: {
type: String,
default: 'row',
validator(val) {
return Object.values(FlexDriecton).includes(val);
}
},
updateVehicleTime: {
type: Number,
default: 0,
validator(val) {
return val === 0 || val >= 15;
}
},
props: {
// 基础的类型检查 (`null` 和 `undefined` 会通过任何类型验证)
propA: Number,
// 多个可能的类型
propB: [String, Number],
// 必填的字符串
propC: {
type: String,
required: true
},
// 带有默认值的数字
propD: {
type: Number,
default: 100
},
// 带有默认值的对象
propE: {
type: Object,
// 对象或数组默认值必须从一个工厂函数获取
default: function () {
return { message: 'hello' }
}
},
// 自定义验证函数
propF: {
validator: function (value) {
// 这个值必须匹配下列字符串中的一个
return ['success', 'warning', 'danger'].indexOf(value) !== -1
}
}
},