實現乙個簡單的跨元件資料共享vue bus

2021-10-04 08:32:02 字數 1053 閱讀 7588

在開發小專案的時候,我們不希望引入vue的外掛程式vuex,而僅僅使用簡單的乙個自定義的外掛程式,來解決跨級和兄弟元件通訊的問題。

在此,通過vue外掛程式的方式,可以在全域性的元件間隨意使用;

// vue-bus.js 

const install = function (vue) ,

on (event, callback) ,

off (event, callback)

}});

vue.prototype.$bus = bus;

};export default install;

注意檔案引入路徑

// 部分省略

import vuebus from './vue-bus';

vue.use(vuebus);

通過使用this.$bus.emit('add', this.params);發出。第乙個引數為事件名,第二引數為需要傳遞的資料;

通過使用this.$bus.emit('add',this.handledata)接收。 第乙個引數為事件名,第二個引數為乙個callback的函式,該函式入參就是emit傳遞過來的引數;

注意點:

$bus.on 應該在created 鉤子內使用, 如果在mounted 中使用,可能接收不到其他元件來自created 鉤子內發出的事件;

使用了bus

.on,

在bef

ored

esto

ry鉤子

中應該再

使用

bus.on ,在beforedestory 鉤子中應該再使用

bus.on

,在be

fore

dest

ory鉤

子中應該

再使用bus.off 解除,元件銷毀後,應該清除監聽的控制代碼;

created () ,

beforedestroy ()

vue實現乙個簡單的tab panel元件

tab panel元件主要涉及到vue的插槽和父子元件間值的傳遞。元件demo位置 子元件 在父元件中的引用 面板1 面板2 這裡使用到具名插槽來傳遞父元件中的html結構,關於插槽可以看這裡,簡單來說就是預設插槽直接接收所有父元件傳過來的html模板,然後渲染在插槽的位置,具名插槽如上述所寫,父元...

實現乙個簡單的資料庫

所有應用軟體之中,資料庫可能是最複雜的。mysql的手冊有3000多頁,postgresql的手冊有2000多頁,oracle的手冊更是比它們相加還要厚。但是,自己寫乙個最簡單的資料庫,做起來並不難。reddit上面有乙個帖子,只用了幾百個字,就把原理講清楚了。下面是我根據這個帖子整理的內容。第一步...

乙個簡單的跨庫事務問題

來自 最近在做乙個專案,其中乙個方案涉及到跨庫事務一致性問題,是乙個簡單的場景。這個專案是對老的業務進行效能提公升,業務邏輯基本上保持不變。主要是在於新專案採用了分庫分表的設計,從而提公升了效能。考慮到專案發布之後可能存在風險,採取了新老系統的並行方案。這個系統的業務比較簡單 接收來自外部的資料,然...