定义Prop的时应使用驼峰格式(camelCase)命名,因为定义变量为JavaScript变量,在父组件中赋值应该使用短横线(-)连接,因为HTML对大小写不敏感。
示例:
反例
// HTML
<product-item :productStatus="true"></product-item>
<script>
// Vue
export default {
props: {
"product-status": Boolean
}
}
</script>
正例
// HTML
<product-item :product-status="true"></product-item>
<script>
// Vue
export default {
props: {
"productStatus": Boolean
}
}
</script>
Prop定义应该尽量详细指定其类型(type),默认值(default)和验证(required:非空验证;validator:自定义验证,返回true表示验证通过,返回false表示验证失败),如果是数组/对象的默认值应该是由一个匿名函数返回。
示例:
反例
export default {
props: ['attrA', 'attrB', 'attrC']
}
正例
export default {
props: {
'attrA': Number,
'attrB': {
"type": String,
"required": true
},
'attrC': {
"type": String,
"default": ""
},
'attrD': {
"type": Object,
"default": function(){
return {};
}
},
'attrE': {
"type": Array,
"default": function(){
return [];
}
},
'attrE': {
"type": String,
"validator": function (value) {
return !(['success', 'fail'].indexOf(value) === -1)
}
}
}
}
`type`常用类型
String
Number
Boolean
Array
Object
Date
Function
Symbol