vue.js实战——props数据验证(自定义构造器检测)


    Vue.component('my-component',{
            props:{
                //必须是数字类型
                propA:Number,
                //必须是字符串或数字类型
                propB:[String,Number],
                //布尔值,如果没有定义,默认值就是true
                propC:{
                    type:Boolean,
                    default:true
                },
                //数字,而且是必传
                propD:{
                    type:Number,
                    required:true
                },
                //如果是数组或对象,默认值必须是一个函数来返回
                propE:{
                    type:Array,
                    default:function (){
                        return [];
                    }
                },
                //自定义一个验证函数
                propF:{
                    validator:function (value){
                        return value>10;
                    }
                }
            }
        })

验证的type类型可以是:

  String

  Number

  Boolean

  Object

  Array

  Function

type也可以是一个自定义构造器,使用instanceof检测。

当props验证失败时,在开发版本下会在控制台抛出一条警告。

自定义构造器测试:

<body>
    <div id="app">
        {{myObj}}
            <my-component :my-obj="12"></my-component>
            <my-component :my-obj="myObj"></my-component>
    </div>
    <script>
        function MyObj(){
            this.name=1;
            this.age=2;
        }
        var myObj=new MyObj();
        console.log(new MyObj());

        Vue.component('my-component',{
            props:{
                //自定义构造器测试
                myObj:MyObj,
            },
            template:'<div>自定义构造器测试 ——{{myObj}}</div>'
       
        })
        new Vue({
            el:'#app',
            data:{
                myObj:myObj
            }
        })
    </script>
</body>

显示如下:

传入12时报错

http://www.cnblogs.com/exhuasted/p/7250452.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM