Prop
1.props中的驼峰命名命名在使用时需要换成对应的kebab-case (短横线分隔命名) 命名:
Vue.component('my-com',{
props:['myBla'],
template: '<h3>{{ postTitle }}</h3>'
})
<my-com my-bla="woqu"></my-com>
2.可以给props中的名称对应的值指定类型,我们以对象的形式输出props
props: {
title: String,
likes: Number,
isPublished: Boolean,
commentIds: Array,
author: Object,
callback: Function,
contactsPromise: Promise // or any other constructor
}
props: {
title: String,
likes: Number,
isPublished: Boolean,
commentIds: Array,
author: Object,
callback: Function,
contactsPromise: Promise // or any other constructor
}
3.peops可以通过v-bind动态赋值:
<my-com v-bind:my-bla="arr.name"></my-com>
4.单向数据流
父级prop可以影响子组件,子组件不能影响父组件,这样可以防止子组件意外的改变父组件,
所以,我们不应该在子组件中去改变prop值,应该在父组件中去更新它。
父级prop可以影响子组件,子组件不能影响父组件,这样可以防止子组件意外的改变父组件,
所以,我们不应该在子组件中去改变prop值,应该在父组件中去更新它。
5.Prop验证
propA:{
type:String, //数据类型
required: true, //必填字段
default: 100, //默认值
// 对象或数组默认值必须从一个工厂函数获取
default: function () {
return { message: 'hello' }
},
validator: function (value) {
// 这个值必须匹配下列字符串中的一个
return ['success', 'warning', 'danger'].indexOf(value) !== -1
}
}

浙公网安备 33010602011771号