平行组件通信

<body>
    <div id="app">
        <!-- 3.使用子组件 -->
        <App></App>
    </div>
    <script>
        //1.创建中央事件总线 bus
        const bus = new Vue();

        Vue.component('B', {
            data() {
                return {
                    count: 0
                }
            },
            template: `
                <div>
                    {{count}}
                </div>
            `,
            created() {
                // 2.$on 绑定事件
                bus.$on("add", (n) => {
                    this.count += n;
                })
            }
        })

        Vue.component('A', {
            data() {
                return {

                }
            },
            template: `
                <div>
                    <button @click='handleClick'>加入购物车</button>
                </div>
            `,
            methods: {
                handleClick() {
                    // 3.$emit 触发事件
                    bus.$emit("add", 1);
                }
            },
        })

        const App = {
            data() {
                return {

                }
            },
            template: `
                <div>
                    <A></A>
                    <B></B>
                </div>
            `
        }

        new Vue({
            el: '#app',
            data: {

            },
            components: {
                //2.挂载子组件
                App
            }
        })
    </script>
</body>
原文地址:https://www.cnblogs.com/nanjo4373977/p/12904150.html