美文网首页
vue父子组件间的通信

vue父子组件间的通信

作者: tobyDing | 来源:发表于2017-07-31 09:02 被阅读0次

    父子组件定义与使用:
    <body>
    <div id="box">
    <aaa></aaa>
    </div>
    <script>
    var vm=new Vue({
    el:'#box',
    data:{
    a:'aaa'
    },
    components:{
    'aaa':{
    data(){
    return {
    msg:'我是父组件的数据'

                                     }
                                 },
                                 template:'<h2>我是aaa组件</h2><bbb></bbb>',
                                 components:{
                                     'bbb':{
                                         template:'<h3>我是bbb组件->{{msg}}</h3>'
                                     }
                                 }
                            }
                         }
                    });
    
                 </script>
             </body>
        
         组件间数据传递/通信:
            vue默认情况下,子组件也没法访问父组件数据
         (1)子组件想获取父组件data数据
             在调用子组件时候,通过属性传递数据:(注意此时属性名属于html,命名时加横线,不要大写)
                 <bbb :m="数据"></bbb>
    
             在子组件之内,通过props获取属性中的数据: (注意此时属性名属于js,命名时采用驼峰命名法,包括模板中引用数据时也采用驼峰命名)
                 a) 常见的数组写法
                     props:['m','myMsg']
    
                 b) json写法
                     props:{
                        'm':String,
                        'myMsg':Number
                     }
                     
         (2)父级获取子级数据
             a)常用方式
                 *需要子组件把自己的数据,发送到父级:
                     vm.$emit(事件名,数据);
                 父级接受:
                     @事件名  通过一个带参数的函数接收数据(注意,接受的函数不能加(),会使默认参数清空)
    
             b)vue2.0已经废除的方式
                 vm.$dispatch(事件名,数据)   子级向父级发送数据
                 vm.$broadcast(事件名,数据)  父级向子级广播数据
                     配合: events:{}

    相关文章

      网友评论

          本文标题:vue父子组件间的通信

          本文链接:https://www.haomeiwen.com/subject/ikellxtx.html