Vue中非父子組件傳值的問題


非父子組件之間的通信,必須要有公共的實例(可以是空的),才能使用 $emit 獲取 $on 的數據參數,實現組件通信 

第一個組件的數據傳遞給第二個組件

公共實例文件bus.js,作為公共數控中央總線

import Vue from "vue";
export default new Vue();

第一個組件 first.vue

import Bus from '../bus.js';
export default {
  name: 'first',
  data () {
    return {
      value: '我來自first.vue組件!'
    }
  },
  methods:{
    add(){// 定義add方法,並將msg通過txt傳給second組件
      Bus.$emit('txt',this.value);
    }
  }
}

 

第二個組件second.vue

import Bus from '../bus.js';
export default {
  name: 'second',
  mounted:function(){
    Bus.$on('txt',function(val){//監聽first組件的txt事件
      console.log(val);
    });
  }
}


免責聲明!

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



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