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