首页 > 其他 > 详细

非父子组件通信 实例

时间:2017-10-24 17:49:31      阅读:306      评论:0      收藏:0      [点我收藏+]
    <div id="app">
        <foo></foo>
        <br>
        <bar></bar>
    </div>
    var eventsBus = new Vue({});
        //foo组件
        var foo = {
            template:
            <div>                <p>                    the count of foo is {{ fooCount }} +                     <button @click="addBar"> add bar\‘s count </button>                </p>            </div>            ,
            data:function(){
                return {
                    fooCount:0
                }
            },
            methods:{
                addBar:function(){
                    //触发中转站事件
                    eventsBus.$emit(‘addBar‘)
                }
            },
            mounted:function(){ //当渲染结束后让中转实例监听addfoo方法,当addfoo方法执行后让此组件的fooCount+num(其实就是把addfoo这个函数注册给了eventsBus实例)
                eventsBus.$on(‘addFoo‘,function(num){
                    this.fooCount += num
                }.bind(this))
            }
        }
        //bar组件
        var bar = {
            template:
            <div>                <p>                    the count of bar is {{ barCount }} +                     <button @click="addFoo"> add Foo\‘s count </button>                </p>            </div>            ,
            data:function(){
                return {
                    barCount:0
                }
            },
            methods:{
                addFoo:function(){
                    //触发中转站事件
                    eventsBus.$emit(‘addFoo‘,2)
                }
            },
            mounted:function(){
                eventsBus.$on(‘addBar‘,function(){
                    this.barCount ++
                }.bind(this))
            }
        }

        var vm = new Vue({
            el:"#app",
            components:{
                foo,
                bar
            }
        })
        //总结来下就是addBar和addFoo都被注册进了中转实例中,当点击Foo组件的时候,触发addBar方法,当点击Bar组件的时候,触发addFoo方法,并且直接加2

 

非父子组件通信 实例

原文:http://www.cnblogs.com/ItIsInteresting/p/7724831.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!