vue props 默认值_学习 vue 的组件 props 数据类型的验证功能【17】

7c55531a197bea8d888557cf7de6e44c.gif

学习要点:1.props 验证

本节课我们来开始学习 Vue 的组件 props 数据类型的验证功能。

一. props 验证

1. 之前 props 选项通信采用的是数组方式,其实还有第二种方式:对象;

Sting | Number | Boolean | Function | Object | Array | Symbol

2. 通过对象模式进行传递数据,可以对数据类型进行验证,支持的类似有:

<html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>17.组件的 props 验证title>head><body><div id="app">    <html-a         :child-num="num"        :child-age="age"        :child-str="str"        :child-arr="arr"        :child-arr3="[1,2,3]"        :child-obj="obj"        :child-other="other"        :child-price="price"    >html-a>div><script src="../js/vue.js">script><script>    Vue.config.productionTip=false;    const app=new Vue({        el:'#app',        data:{            num : 100, //'100' 改成非数值,控制台将警告            age:'100', // 数值与字符串,            str:'Mr.ren', //字符串            arr:[1,2,3,4,5], //数组            obj:{ //对象                name:'Mr.ren',                age:100,            },            other:null, //null undefined 或通过任意类型,            price:100, //自定义验证 如100改成90控制台报错        },        components:{            'html-a' : {                props:{                    childNum:Number, //仅仅支持数值                    childAge:[Number,String], //支持数值和字符串                    childStr:{                        type:String, //设置类型和默认值 [Number, String]                        default:'no data'                     },                    childStr2:{                        type:[String,Number],                         default:'no date' //当没有 v-bind 绑定则显示                    },                    childArr:{                        type:Array, //数组和对象的默认值必须用方法                        default(){                            return [];                        }                    },                    childArr2:{                        type:Array,                        default(){                            return [];                        }                    },                    childArr3:{                        type:Array,                        default(){                            return [];                        },                        required:true, //必须 v-bind 绑定,不能不传                    },                    childObj:{                        type:Object,                        default(){                            return {};                        }                    },                    childOther:{                        type:Object,                        default(){                            return {};                        }                    },                    childPrice:{                        validator(value){                             return value > 90; //自定义验证,不成立报错                        }                    }                },                template:`                    

{{ childNum }}

{{ childAge }}

{{ childStr }} | {{ childStr2 }}

{{ childArr }} | {{childArr2}} | {{childArr3}}

{{ childObj }}

{{ childOther }}

{{ childPrice }}

`, } } });script>body>html>

PS:`null` 和 `undefined` 会通过任何类型验证

9c1a8607b488ff365d35cfdad708047b.png

eeb25079e091f8b846c17c198409437d.png

bd645daf6ff0a933fbf569bfe08ec37d.png

如果您觉得有用,记得在下方点赞、关注、留言,小编会定期奉上更多的惊喜哦,您的打赏支持才是小编继续努力的动力,么么哒。

每日分享在学习过程中总结的学习经验,学习笔记,笔试题,HTML,CSS,JavaScript,jQuery教程,Vue教程,PHP教程,TinkPHP教程等,望大家能以学习为目的,每天阅读一篇文章,了解身边的技术,陪有梦想的人一起成长!

53d4f29a298f294b341754a68d0a6ef9.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值