兄弟組件之間傳值


有的項目中,需要使用多個子組件,當需要傳遞值的時候,較為麻煩,怎樣實現呢

1,一般可以使用子組件a傳遞給父組件,再由父組件傳遞給子組件b。但是一般較為麻煩,

2,使用bus作為中介,來傳遞ab組件之間的值

首先,創建bus.js文件,一般在src目錄下,

import Vue from 'vue';
export default new Vue;

其次,在組件a中,(只是截取部分代碼,此處僅有觸發傳遞的代碼)

  <el-button  @click="edit(item.id)" >查看更多</el-button>

 edit() 函數

引入

import Bus from "@/bus.js";

  按照自己寫的路徑引入即可

edit(id){
      Bus.$emit("businessId", id);
      this.$router.push({ path: `/admin/editbusiness/${id}` });
      console.log(id);
    }

  (上面代碼高亮部分是路由跳轉一種寫法,當router-link不夠方便的時候,大多數可以使用$router.push,但是$router.push也有弊端,比如下面代碼所示,因此使用上述高亮代碼可完美解決

  this.$router.push({ path: '/admin/editbusiness',query:{id:1}});
  this.$router.push({ name: 'business',params:{id:1}});

b組件

首先

引入

import Bus from "@/bus.js";

創建一個函數,接收拿到的數據

 getAData(val) {
      console.log(val);
    },

  在mounted中觸發

  Bus.$on("businessId", this.getAData);

  以上就是父子組件之間的傳值,如有更好的方法,歡迎交流指正

 


免責聲明!

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



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