非父子组件$emit()

<div class="box">
        <first></first>
        <second></second>
    </div>
    
    <script src="js/vue.js"></script>
    <script>
        var sent = new Vue()//中间量

        Vue.component("first",{
            template:`
                <div>
                    <h1>这是first组件</h1>
                    <button @click='add'>传送数据</button>
                </div>
            `,
            data:function(){
                return{
                    msg:'hello vue'
                }
            },
            methods:{
                add:function(){
                    sent.$emit("sentMsg",this.msg) 
                }
            }
        })
        
        Vue.component("second",{
            template:`
                <div>
                    <h1>这是second组件</h1>
                    <p>{{mess}}</p>
                </div>
            `,
            data:function(){
                return{
                    mess:''
                }
            },
             mounted:function(){//因为mounted是vue的生命周期,所以用箭头函数用this指向组件
                sent.$on("sentMsg",msg=>{
                    this.mess = msg
                })
            }

        })
        
        new Vue({
            el:'.box'
        })
    </script>

QQ图片20180925082307.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容