美文网首页
vue组件通信的补充(非父子)

vue组件通信的补充(非父子)

作者: 蜗牛和曼巴 | 来源:发表于2018-11-07 21:35 被阅读0次
  1. 创建事件总线eventbus, 它是一个空的Vue实例,它可以用来作为非父子组件通信的桥梁
      let evtbus = new Vue()
<!DOCTYPE html>
<html lang="en">
  <head>
    <title></title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="./vue.js"></script>
  </head>
  <body>
    <div id="app">
      <father></father>
    </div>
    <script>
      // 1. 创建事件总线eventbus, 它是一个空的Vue实例,它可以用来作为非父子组件通信的桥梁
      let evtbus = new Vue()

      let son = {
        template: '<div><button @click="tellSister">点击告诉妹妹我女朋友叫{{gfName}}</button></div>',
        data () {
          return {
            gfName: 'rose'
          }
        },
        methods: {
          tellSister() {
            // 2. 利用事件总线,发射一个自定义事件,以及数据
            evtbus.$emit('emitName', this.gfName)
          }
        }
      }
      let daughter = {
        template: '<div>我哥哥告诉我他女朋友叫 {{saoziName}}</div>',
        data() {
          return {
            saoziName: '????'
          }
        },
        // 3. 在daughter组件挂载到页面的时候就一直监听,通过事件总线监听。兄弟什么时候发射事件过来,我什么执行自己的逻辑
        mounted () {
          // 事件总线通过$on方法监听,第一个参数是监听的事件名称,第二个参数是一个回调函数
          evtbus.$on('emitName', (name) => {
            console.log(name);
            this.saoziName = name
          })
        }
      }
      Vue.component('father', { 
        template: `
            <div>
              <son></son>
              <daughter></daughter>
            </div>
        `,
        components: {
          son,
          daughter
        }
      })
      var vm = new Vue({
        el: '#app',
        data: {

        }
      })
    </script>
  </body>
</html>

相关文章

  • VUE组件(传值,生命周期)

    VUE生命周期 VUE子传父组件通信 VUE非父子组件传值

  • 09-生命周期及非父子组件间的通信

    一. Vue生命周期 二、生命周期代码 三、非父子组件通信 vue中非父子组件通信需要借助一个空的vue实例,案...

  • vue组件通信的补充(非父子)

    创建事件总线eventbus, 它是一个空的Vue实例,它可以用来作为非父子组件通信的桥梁

  • 生命周期,组件通信、插槽

    一、生命周期 二、组件通信 Vue只有两种关系, 父子组件 非父子组件 1.父子通信:当我们需要把父组件中的数据传...

  • vue第七节

    Vue里组件的通信 通信:传参、控制(A操控B做一个事件)、数据共享 模式:父子组件间、非父子组件 父组件可以将一...

  • Vue组件通信方式

    本文主要介绍关于Vue组件通信的四种方式,分别是父向子组件通信、子向父组件通信、非父子组件的EventBus通信、...

  • Vue相关知识点

    1、vue父子组件之间的通信 在vue组件通信中其中最常见通信方式就是父子组件之中的通性,而父子组件的设定方式在不...

  • vue中的组件通信

    一、组件通信(组件传值) 1.1父子组件通信 1.2子父组件通信 1.3非父子组件通信(兄弟组件通信)

  • vue组件通信,中央事件总线

    vue 组件通信分为父组件与子组件通信、子组件与父组件通信、非父子关系组件通信三种 第一种大家都知道用props,...

  • Vue3组件化(二):非父子组件的通信、插槽Slot

    非父子组件的通信 在开发中,我们构建了组件树之后,除了父子组件之间的通信之外,还会有非父子组件之间的通信。这里我们...

网友评论

      本文标题:vue组件通信的补充(非父子)

      本文链接:https://www.haomeiwen.com/subject/ppubxqtx.html