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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM