vue.js_0_vue-父子组件的传值方法

1.父向子传递数据

1>定义一个父组件和一个子组件

2>父组件通过v-bind绑定传递的数据  :parentmsg="msg"

3>子组件需要通过 props:['']来接收数据 props: ['parentmsg'],

<body>
        <div id="app">
            <comp1 :parentmsg="msg"></comp1>
        </div>

        <template id="tmpl1">
            <div>
                <h1>这是子元素--{{parentmsg}}</h1>
            </div>
        </template>
        <script>
            var comp1 = {
                template: '#tmpl1',
                props: ['parentmsg'],
            }
            var vm = new Vue({
                el: '#app',
                data: {
                    msg: '我是父组件中的数据',
                },
                components: {
                    comp1
                }
            })
        </script>
    </body>

 2.子向父传递数据

1>子组件通过一个触发一个事件来调用向父组件传递数据的方法  @click="sendMsg"

2>通过  this.$emit('func',this.msg) 传递数据给父组件   来调用父组件上绑定的方法  @func="getMsgFromSon"

3>通过方法拿到子组件传递过来的数据

methods: {
                    getMsgFromSon(data){
                        this.msgSon=data
                    }
                },

<body>
        <div id="app">
            <comp1 :parentmsg="msg" @func="getMsgFromSon"></comp1>
            <h1>{{msgSon}}</h1>
        </div>

        <template id="tmpl1">
            <div>
            <h1>这是子元素</h1>
            <input type="button" value="向父组件传递消息"  @click="sendMsg"/>
            </div>
        </template>
        <script>
            var comp1 = {
                template: '#tmpl1',
                props:['parentmsg'],
                data(){
                    return{
                        msg:'我是子组件中的数据'
                    }
                },
                methods:{
                    sendMsg(){
                        this.$emit('func',this.msg)
                    }
                }
            }
            var vm = new Vue({
                el: '#app',
                data: {
                    msg:'我是父组件中的数据',
                    msgSon:''
                },
                methods: {
                    getMsgFromSon(data){
                        this.msgSon=data
                    }
                },
                components: {
                    comp1
                }
            })
        </script>
    </body>

猜你喜欢

转载自www.cnblogs.com/asndxj/p/11707423.html