组件传参

常见问题

vue组件props没有起作用的原因:并不会在开发版本中运行,只有生产版本会直接删除警告,
引入一个非压缩的版本就可以解决

页面结构

<div id="app">
    <demo :prop-c="propC"></demo>
</div>

<template id="demo">
    <div>
        <h1>props验证</h1>
        {{propC}}
    </div>
</template>

逻辑结构

var app = new Vue({
    el: '#app',
    data:{
        propC:'123',
    },
    components:{
        demo:{
            template: '#demo',
            props:{
                // 基础类型检测, null意味着任何类型都行
                propA: Null,

                // 多种类型
                propB: [String, Number],

                // 必传且是String
                propC: {
                    type: String,
                    required: true
                },

                // 数字有默认值
                propD: {
                    type: Number,
                    default: 101
                },

                // 数组、默认值是一个工厂函数返回对象
                propE: {
                    type: Object,
                    default: function() {
                        console.log("propE default invoked.");
                        return { message: "I am from propE."};
                    }
                },

                // 自定义验证函数
                propF: {
                    isValid: function(value) 
                    {
                        return value > 100;
                    }
                }
            },
        }
    }
})
powered by GitbookEdit Time: 2023-04-08 10:28:32