欢迎光临
我们一直在努力

05第4章Vue.js组件第2节组件通信(非父子组件通信)

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
</head>

<body>
    <div id="app">
        <h2>组件A:向总线上报事件</h2>
        <my-component-a v-bind:counter="total"></my-component-a>
        <h2>组件B:通过总线监听相关事件</h2>
        <my-component-b></my-component-b>
    </div>
    <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
    <script>
        var bus = new Vue();
        Vue.component('my-component-a', {
            template: '<div><p>组件A</p><hr><button v-on:click="doClick">{{ counter }}</button><hr></div>',
            data: function () {
                return { counter: 1 }
            },
            methods: {
                doClick: function () {
                    this.counter++;
                    bus.$emit('btn-click', this.counter)
                }
            }
        })
        Vue.component('my-component-b', {
            template: '<div><p>组件B</p><hr>计数器:{{ counter }} <hr></div>',
            data: function () {
                return {
                    counter: 0
                }
            },
            methods: {
                foo: function (value) {
                    console.log(value);
                    this.counter = value;
                }
            },
            created: function () {
                bus.$on('btn-click', this.foo);
            }
        })
        var app = new Vue({
            el: '#app',
            data: {
                total: 0
            },
            methods: {
                doChildClick: function () {
                    this.total += 1
                }
            }
        })
    </script>

</body>

</html>
赞(0) 打赏
未经允许不得转载:留留工作室 » 05第4章Vue.js组件第2节组件通信(非父子组件通信)

评论 抢沙发

更好的WordPress主题

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册