码迷,mamicode.com
首页 > 其他好文 > 详细

非父子组件通信 实例

时间:2017-10-24 18:17:54      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:注册   ++   component   点击   bsp   bar   arc   eth   bin   

    <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

 

非父子组件通信 实例

标签:注册   ++   component   点击   bsp   bar   arc   eth   bin   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!