定义Prop的时应使用驼峰格式(camelCase)命名,因为定义变量为JavaScript变量,在父组件中赋值应该使用短横线(-)连接,因为HTML对大小写不敏感。
示例:
反例
// HTML<product-item :productStatus="true"></product-item><script>// Vueexport default {props: {"product-status": Boolean}}</script>
正例
// HTML<product-item :product-status="true"></product-item><script>// Vueexport 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`常用类型
StringNumberBooleanArrayObjectDateFunctionSymbol
