定义Prop的时应使用驼峰格式(camelCase)命名,因为定义变量为JavaScript变量,在父组件中赋值应该使用短横线(-)连接,因为HTML对大小写不敏感。
    示例:

    反例

    1. // HTML
    2. <product-item :productStatus="true"></product-item>
    3. <script>
    4. // Vue
    5. export default {
    6. props: {
    7. "product-status": Boolean
    8. }
    9. }
    10. </script>

    正例

    1. // HTML
    2. <product-item :product-status="true"></product-item>
    3. <script>
    4. // Vue
    5. export default {
    6. props: {
    7. "productStatus": Boolean
    8. }
    9. }
    10. </script>

    Prop定义应该尽量详细指定其类型(type),默认值(default)和验证(required:非空验证;validator:自定义验证,返回true表示验证通过,返回false表示验证失败),如果是数组/对象的默认值应该是由一个匿名函数返回。
    示例:

    反例

    1. export default {
    2. props: ['attrA', 'attrB', 'attrC']
    3. }

    正例

    1. export default {
    2. props: {
    3. 'attrA': Number,
    4. 'attrB': {
    5. "type": String,
    6. "required": true
    7. },
    8. 'attrC': {
    9. "type": String,
    10. "default": ""
    11. },
    12. 'attrD': {
    13. "type": Object,
    14. "default": function(){
    15. return {};
    16. }
    17. },
    18. 'attrE': {
    19. "type": Array,
    20. "default": function(){
    21. return [];
    22. }
    23. },
    24. 'attrE': {
    25. "type": String,
    26. "validator": function (value) {
    27. return !(['success', 'fail'].indexOf(value) === -1)
    28. }
    29. }
    30. }
    31. }
    1. `type`常用类型
    • String
    • Number
    • Boolean
    • Array
    • Object
    • Date
    • Function
    • Symbol