vue.js组件之间的通讯-----父亲向儿子传递数据,儿子接收父亲的数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">

</div>
</body>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
    //组件之间的通讯 ,1,父与子 2,子与父 3,兄弟之间
    // 父亲传递儿子,默认组件是独立的,相互不能引用数据,可以通过属性方式传递给儿子
    let vm=new Vue({
        el:"#app",
        //根实例上的data都是对象,组件中的都是函数
        data:{
            money:100
        },
        //父级传递给子集数据通过绑定属性,如果传递多个可以数组中写多个
        //如果传递的是boolean或这个数组需要加:
        //template会替代div,id为app的标签
        template:'<div><child :m="money" o="美女"></child></div>',

        components: {
            child: {
                //子集接收给父级给的数据,通过props属性接收
                props: {
                    //规定传递过来的m是不符合数组里面类型,也会渲染页面上,只是提示
                    m: {
                        type: [Number, Boolean, Array, String],
                        // default:'500' //默认值,如果父级没有传递时候,会采用默认值
                        required: true ////必须传递 不能和default同时引用
                    },
                    o: {
                        type: String,
                        //自定义校验器
                        validator(val) { //val代表o属性传递过来的值
                            return val === '美女';
                        }
                    }
                    },
                    computed: {
                        b() {
                            //这里的this指向子集child
                            //父亲的数据儿子不能更改 错误写法 this.o="丑呀"
                            return "大大" + this.o;
                        }
                    },
                    template: "<div>儿子 {{m}} {{b}}</div>"
                }
            }
    });
</script>
</html>

 

posted @ 2017-09-05 13:02  八bug哥哥  阅读(1025)  评论(2编辑  收藏  举报