子组件通过$emit()向父组件传递数据

子组件通过$emit()向父组件传递数据

改变子组件输入框数据,父组件的数据也跟着改变

效果图:

实现代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>子组件向父组件传递数据</title>
        <script src="./vue.js"></script>
    </head>
    <body>
        <div id="app">
            <child @change="getData"></child>    <!-- @change:父组件监听子组件发送的change事件-->
            <div>父组件:{{msg}}</div>
        </div>
        <script type="text/javascript">
            
            //定义一个组件
            Vue.component('child',{
                template: "<div>子组件:<input @keyup='handle' v-model='msg' /></div>",
                data: function (){
                    return {
                        msg: ''
                    }
                },
                methods:{
                    handle:function(){
                        this.$emit('change',this.msg);        //发送change事件,并且传递this.msg
                    }
                }
            })
            
            var vm = new Vue({
                el: '#app',
                data: {
                    msg: ''
                },
                methods:{
                    getData: function(data){
                        this.msg = data;
                    }
                }
            })
        </script>
    </body>
</html>

猜你喜欢

转载自www.cnblogs.com/pangyuan/p/10589388.html