zoukankan      html  css  js  c++  java
  • vue兄弟组件传递数据

    在main.js里面设置data{eventHub:new Vue() }  

    new Vue({
      el: '#app',
      router,
      store,
      template: '<App/>',
      components: { App },
       data:{
         eventHub:new Vue()   // 在main.js设置所有组件都能用调用
      },
          
    })
        

     我们再组件一设置一个事件调用组件二的事件,传递数据给组件二

    <template>
      <div v-on:click="on()"></div>
    
    </template>
    <script>
    export default {
       data(){
       return{
        datas:"数据"
    }
    },
     methods:{
       on(){
           this.$root.eventHunb.$emit("eventName",this.datas)   
       
        //$emit是触发事件,当我们点击on事件的时候,$emit会触发其他组件的eventName事件, 把this.datas数据传递到其他组件中
      }
      }
     
    }
    
    </scrpt>
    

      组件二被触发的事件,接受的参数

    <template>
    <div>{{datas}}</div>
    </template>
    <script>
    exports default{
    data(){
    return{
    datas:""
    }
    },
    created(){
    //组件一跟组件二都要绑定相同的eventName
    this.$root.eventHub.$on("eventName",(tar) = > {

    this.fn(tar)
    //$on是监听事件,如果组件一得$emit触发了,$on就会触发this.fn事件

    })
    }
    methods:{
    fn:function(tar){
    this.datas = tar
    }
    }

    }

    </script>

  • 相关阅读:
    python-观察者模式
    python-迭代器模式
    python-策略模式
    python-组合模式
    python-享元模式
    python-代理模式
    虚基类与虚继承
    指针与地址的关系
    大数相加和大数相乘以及打印从1到最大的n位数
    各种排序实现以及稳定性分析
  • 原文地址:https://www.cnblogs.com/complete94/p/7142122.html
Copyright © 2011-2022 走看看