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>

  • 相关阅读:
    10.28作业
    10.27作业
    10.26作业
    10.22作业
    10.20作业
    10.19作业
    10.16作业
    10.15作业
    10.14作业
    10.13作业
  • 原文地址:https://www.cnblogs.com/complete94/p/7142122.html
Copyright © 2011-2022 走看看