亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue總線機(jī)制(bus)知識點(diǎn)詳解

 更新時間:2020年05月10日 17:12:34   作者:csdn  
在本篇文章中小編給大家整理的是關(guān)于vue總線機(jī)制(bus)知識點(diǎn)總結(jié),有興趣的朋友們可以跟著學(xué)習(xí)下。

vue中非父子組件之間通信除了使用vuex,也可以通過bus總線,兩者適用場景不同。

bus適合小項(xiàng)目、數(shù)據(jù)被更少組件使用的項(xiàng)目,對于中大型項(xiàng)目 數(shù)據(jù)在很多組件之間使用的情況 bus就不太適用了。bus其實(shí)就是一個發(fā)布訂閱模式,利用vue的自定義事件機(jī)制,在觸發(fā)的地方通過$emit向外發(fā)布一個事件,在需要監(jiān)聽的頁面,通過$on監(jiān)聽事件。

vuex適用中大型項(xiàng)目、數(shù)據(jù)在多組件之間公用的情況。

簡單介紹兩者的區(qū)別之后,就要介紹下我在一個項(xiàng)目中遇到的一個場景了,這個場景使用bus可能更加適合些:

//main.js
 
Vue.prototype.bus = new Vue();
new Vue({
 render: h => h(App)
  ...
}).$mount('#app');
/*
*通過把一個vue實(shí)例賦于Vue構(gòu)造函數(shù)原型上的一個屬性bus(當(dāng)然起任何名稱都是可以的)
*而每個Vue實(shí)例都是有$emit和$on方法的
*由于bus屬性在Vue原型上,根據(jù)原型鏈查找規(guī)則,在頁面中我們就可以通過 this.bus.$emit 和 
*this.bus.$on來進(jìn)行跨組件通信了
*/
//導(dǎo)航欄組件中
//點(diǎn)擊事件發(fā)生時發(fā)布一個事件
this.bus.$emit('even-name',args1, arg2 , ...)
 
//這里我們可以把點(diǎn)擊導(dǎo)航的相關(guān)信息攜帶出去
//路由顯示頁面中
this.bus.$on('event-name', (...args) => {
  //根據(jù)參數(shù)來進(jìn)行路由跳轉(zhuǎn)
})

這個事件監(jiān)聽 和 路由跳轉(zhuǎn)的邏輯我們可以弄成一個mixins進(jìn)行復(fù)用。到這樣就完成了。

但是這樣還是有點(diǎn)麻煩,每個頁面都需要引入mixins,有沒有更好的辦法呢?答案是肯定的。我們項(xiàng)目導(dǎo)航欄是通過路由meta循環(huán)出來的,每項(xiàng)有對應(yīng)導(dǎo)航欄的路由,結(jié)構(gòu)如下:

 {
  path: '/xxxx',
  component: xxxx,
  meta: [
   {
    name: '導(dǎo)航1'
   }, 
   {
    name: '導(dǎo)航2',
    url: '我是導(dǎo)航2的路由'
   },
   {
    name: '導(dǎo)航3',
    url: '我是導(dǎo)航3的路由'
   },
   {
    name: '導(dǎo)航4',
   }
  ]
 },

在思索時我忽然發(fā)現(xiàn)每個導(dǎo)航欄的index、導(dǎo)航欄長度length、及router.go方法之間有一個規(guī)律,那就是我們可以把index + 1 - length作為router.go的參數(shù),從而不用再關(guān)心query參數(shù)了,而且只需要在導(dǎo)航欄組件操作一次就可以了,完美!

//導(dǎo)航欄組件點(diǎn)擊事件處理函數(shù)中
 
if (url) {
  const meta = this.$route.meta;
  this.$router.go(index + 1 - meta.length)
}

知識點(diǎn)補(bǔ)充:

將Bus注入到Vue根對象中

import Vue from 'vue'
const Bus = new Vue()

var app= new Vue({
  el:'#app',
   data:{
    Bus
  }  

})

在子組件中通過this.$root.Bus.$on(),this.$root.Bus.$emit()來調(diào)用

以上就是vue總線機(jī)制(bus)知識點(diǎn)詳解的詳細(xì)內(nèi)容,更多關(guān)于vue中總線機(jī)制的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue echarts封裝組件需求分析與實(shí)現(xiàn)

    Vue echarts封裝組件需求分析與實(shí)現(xiàn)

    在平常的項(xiàng)目中,echarts圖表我們也是使用的非常多的,通常我們從后端拿到數(shù)據(jù),需要在圖表上動態(tài)的進(jìn)行呈現(xiàn),接下來我們就模擬從后端獲取數(shù)據(jù)然后進(jìn)行呈現(xiàn)的方法,這篇文章主要介紹了Vue echarts封裝組件需求分析與實(shí)現(xiàn)
    2022-10-10
  • vue實(shí)現(xiàn)登錄滑動拼圖驗(yàn)證

    vue實(shí)現(xiàn)登錄滑動拼圖驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)登錄滑動拼圖驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue中mixins的使用方法以及實(shí)際項(xiàng)目應(yīng)用指南

    Vue中mixins的使用方法以及實(shí)際項(xiàng)目應(yīng)用指南

    vue中提供了一種混合機(jī)制--mixins,用來更高效的實(shí)現(xiàn)組件內(nèi)容的復(fù)用,下面這篇文章主要給大家介紹了關(guān)于Vue中mixins的使用方法以及實(shí)際項(xiàng)目應(yīng)用指南,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • 離線搭建vue環(huán)境運(yùn)行項(xiàng)目完整步驟

    離線搭建vue環(huán)境運(yùn)行項(xiàng)目完整步驟

    這篇文章主要給大家介紹了關(guān)于離線搭建vue環(huán)境運(yùn)行項(xiàng)目的相關(guān)資料,文中通過實(shí)例代碼以及圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-06-06
  • vue-draggable實(shí)現(xiàn)拖拽表單的示例代碼

    vue-draggable實(shí)現(xiàn)拖拽表單的示例代碼

    本文主要介紹了vue-draggable實(shí)現(xiàn)拖拽表單的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 詳解vue-cli3多環(huán)境打包配置

    詳解vue-cli3多環(huán)境打包配置

    這篇文章主要介紹了vue-cli3多環(huán)境打包配置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Antd-vue Table組件添加Click事件,實(shí)現(xiàn)點(diǎn)擊某行數(shù)據(jù)教程

    Antd-vue Table組件添加Click事件,實(shí)現(xiàn)點(diǎn)擊某行數(shù)據(jù)教程

    這篇文章主要介紹了Antd-vue Table組件添加Click事件,實(shí)現(xiàn)點(diǎn)擊某行數(shù)據(jù)教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 基于vue實(shí)現(xiàn)圖片驗(yàn)證碼倒計(jì)時60s功能

    基于vue實(shí)現(xiàn)圖片驗(yàn)證碼倒計(jì)時60s功能

    這篇文章主要介紹了基于vue實(shí)現(xiàn)圖片驗(yàn)證碼倒計(jì)時60s功能,本文通過截圖實(shí)例代碼的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • vue異步加載高德地圖的實(shí)現(xiàn)

    vue異步加載高德地圖的實(shí)現(xiàn)

    這篇文章主要介紹了vue異步加載高德地圖的實(shí)現(xiàn),詳細(xì)的介紹了異步加載的實(shí)現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Vue項(xiàng)目如何實(shí)現(xiàn)切換主題色思路

    Vue項(xiàng)目如何實(shí)現(xiàn)切換主題色思路

    這篇文章主要介紹了Vue項(xiàng)目如何實(shí)現(xiàn)切換主題色思路,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01

最新評論