2019-02-14 vue组件基础篇3

非父子组件通信

1.使用一个空的Vue实例作为中央事件总线(bus)
2.bus.$emit('key', 'textcontent')
3.Vue实例app初始化时,在mounted钩子函数里监听来自bus的事件

<div id="app">
      {{ message }}
        <component-a></component-a>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
        var bus = new Vue();

        Vue.component('component-a', {
            template: '<button @click="handleEvent">传递事件</button>',
            methods: {
                handleEvent() {
                    bus.$emit('on-message', '来自component-a的内容');
                }
            }
        });

        var app = new Vue({
            el: '#app',
            data: {
                message: ''
            },
            mounted: function() {
                var _this = this;
                bus.$on('on-message', function(msg) {
                    _this.message = msg;
                })
            }
        })
</script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 组件(Component)是Vue.js最核心的功能,也是整个架构设计最精彩的地方,当然也是最难掌握的。...
    六个周阅读 10,936评论 0 32
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 10,464评论 0 29
  • VUE介绍 Vue的特点构建用户界面,只关注View层简单易学,简洁、轻量、快速渐进式框架 框架VS库库,是一封装...
    多多酱_DuoDuo_阅读 7,673评论 1 17
  • 什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装...
    youins阅读 13,168评论 0 13
  • 丹丹率性,不装,恩怨情仇爱憎分明,让人觉得接地气。 很早就喜欢她。 八十年代的电视剧《寻找回来的世界》中的宋小丽,...
    小扬轻轻阅读 1,391评论 0 0