为什么要有props验证
在Vue中父组件向子组件中传送数据是通过props实现的,想象一下当有一个人要使用foo-component组件的时候,他可能对于其要接受的参数有什么要求并不是很清楚,因此传入的参数可能会在开发子组件的人的意料之外,程序就会发生错误,就像我们在函数调用之前先检查一下函数一样,props也可以进行一个预先检查。
1 | <!DOCTYPE html> |
可以使用type来声明这个参数可以接受的数据的类型,当检查规则只有一个的时候type可以略写 如:fooMessage: Number
1 | <!DOCTYPE html> |
当参数可以是多种类型的其中一个的时候,使用数组来表示。 如 fooMessage: [Number, String]
type能够指定的类型
1 | type可以是以下原生类型: |
required
可以使用required选项来声明这个参数是否必须传入。
1 | <!DOCTYPE html> |
当未传入参数时:会抛出异常
default
使用default选项来指定当父组件未传入参数时props变量的默认值:
1 | <!DOCTYPE html> |
当type的类型为Array或者Object的时候default必须是一个函数:
1 | <!DOCTYPE html> |
validator 自定义
当校验规则很复杂,默认提供的校验规则无法满足的时候可以使用自定义函数来校验。
1 | <!DOCTYPE html> |
综上所述
1 | props: { |