主题
props 和 sync
校验
- 给组件加 props 接受参数,同时可对参数做校验
type—— 类型required: boolean—— 是否必须default: any—— 默认值,当父组件没传时使用validator: (value: any) => boolean—— 复杂校验
js
// 例子
props: {
content: {
type: String,
required: false,
default: 'default content',
validator: (value) => {
return value.length > 5
}
}
}props标签
会把 props 显示到子组件最外层标签上
vue
<Child content="hello" />在最终编译完的 html 代码的子组件会如下显示
vue
<div content="hello">
...
</div>sync -- props “双向绑定”
父组件向子组件传递 prop 时,可以使用 sync 进行双向绑定,这样父和子都能改变这个属性
vue
<Child :show.sync="show" />子组件可以通过 emit 来改变这个值
js
this.$emit('update:show', false)