vue父组件怎么给子组件传值(vue中props设置默认值-父组件给子组件传值的写法——简略、带类型、带类型和默认值、带校验)
导读:vue中props设置默认值-父组件给子组件传值的写法——简略、带类型、带类型和默认值、带校验 1、父子间传值 父传子 在子组件使用 props 选项接收父组件的数据。...
vue中props设置默认值-父组件给子组件传值的写法——简略 、带类型 、带类型和默认值 、带校验
1 、父子间传值 父传子 在子组件使用 props 选项接收父组件的数据 。 <!-- 父组件 --> <template> <div><com-child :value="父组件数据"></com-child></div> </template>2
<!-- 子组件 --> <template> <div> {{value}} </div> </template> <script> export default { // 父传子数据特点 只读 props:[value] //写法一 } </script> 2 、props写法汇总 // 写法一:常规写法 props:[value] //写法二:带有类型写法 props: { fieldString: String, fieldNumber: Number, fieldBoolean: Boolean, fieldArray: Array, fieldObject: Object, fieldFunction: Function } // 写法三:带有类型和默认值写法 props: { fieldString: { type: String, default: }, fieldNumber: { type: Number, default: 0 }, fieldBoolean: { type: Boolean, default: true }, fieldArray: { type: Array, default: () => [] }, fieldObject: { type: Object, default: () => ({}) }, fieldFunction: { type: Function, default: function () { } } } 2.1 、props简略写法一般情况下
props写法 props:{ obj: { type: Object, default: () => {} }, arr: { type: Array, default: () => [] } }但是 ,如果初始化的时候就使用里面的值 ,可能会出现没有该值的情况 ,此时就会报错 。
应该使用以下有默认值的写法 props:{ obj: { type: Object, default: function () { return { obje: } } }, arr: { type: Array, default: function () { return [] } } } 2.2 、带有校验的写法我们可以为组件的 prop指定验证要求 ,例如你知道的这些类型 。如果有一个需求没有被满足 ,则 Vue 会在浏览器控制台中警告你 。
这在开发一个会被别人用到的组件时尤其有帮助 。
props: { // 基础的类型检查 (`null` 和 `undefined` 会通过任何类型验证) propA: Number, // 多个可能的类型 propB: [String, Number], // 必填的字符串 propC: { type: String, required: true }, // 带有默认值的数字 propD: { type: Number, default: 100 }, // 带有默认值的对象 propE: { type: Object, // 对象或数组默认值必须从一个工厂函数获取 default: function () { return { message: hello } } }, // 自定义验证函数 propF: { validator: function (value) { // 这个值必须匹配下列字符串中的一个 return [success, warning, danger].indexOf(value) !== -1 } } } 3 、示例vue中prop会接收不同的数据类型** ,这里列出了 常用的数据类型的设置默认值的写法,其中包含:Number, String, Boolean, Array, Function, Object 。
refAge: { type: Number, default: 0 // 数字类型 ,默认0 }, refName: { type: String, default: // 字符串类型 ,默认 }, hotDataLoading: { type: Boolean, default: false // 布尔类型 ,默认false }, hotData: { type: Array, default: () => { return [] // 数组类型,默认[] } }, getParams: { type: Function, default: () => () => {} // 函数类型 ,默认{} }, meta: { type: Object, default: () => ({}) // 对象类型 ,默认{} }创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!