日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

vue 組件之間事件觸發(fā)($emit)與event Bus($on)的用法說明

瀏覽:22日期:2022-12-25 09:42:15

組件之間事件觸發(fā)

之前使用組件,并不是很頻繁,是水平的問題,目前工作中,公司大佬帶著我手寫過一個組件,再此很感謝他的指導(dǎo)。目前簡單的組件已經(jīng)有了自己的邏輯思維,正在從低級碼農(nóng)向中級碼農(nóng)蛻變。廢話不多說。上圖看看組件情況。

vue 組件之間事件觸發(fā)($emit)與event Bus($on)的用法說明

新增按鈕組件:

vue 組件之間事件觸發(fā)($emit)與event Bus($on)的用法說明

操作按鈕組合組件:

vue 組件之間事件觸發(fā)($emit)與event Bus($on)的用法說明

此時有個需求就是,無論是哪個按鈕,如果改變了列表中的數(shù)據(jù),列表需要實時更新數(shù)據(jù)。

此時就需要用到組件間的事件觸發(fā)。

父子組件之間事件觸發(fā)可以使用$emit

$emit的使用方法如下:

在子組件中,寫一個click點擊事件。比如:

cancelCU() { this.dialogVisible = false; this.$emit(’closeAdd’)}

然后在父組件中子組件上,添加一個 @closeAdd='closeAddClick',closeAddClick函數(shù)就是執(zhí)行了。

新增按鈕可以使用這種方式。但是操作按鈕組合中的組件,就屬于孫子組件了,孫子組件執(zhí)行click事件,列表數(shù)據(jù)需要刷新,此時通過孫子組件觸發(fā)父組件事件,父組件觸發(fā)爺爺組件,就比較麻煩了,此時可以通過event bus實現(xiàn)跨組件的事件觸發(fā)了。

具體使用方法如下:

第一步:

新建一個js文件,來創(chuàng)建出我們的eventBus,我們把它命名為bus.js

內(nèi)容如下:

import Vue from ’vue’;

export default new Vue();

第二步:

在孫子組件和爺爺組件中,都需要引入這個bus.js

import Bus from ’common/js/bus.js’;

孫子組件執(zhí)行方法如下:

addCart(event) { //如果傳遞參數(shù)的話,可以如下這樣寫 Bus.$emit(’getTarget’, event.target); //如果不傳遞參數(shù)可以如下; Bus.$emit(’getTarget’);}

這里我們在click組件中每次點擊,都會在bus中觸發(fā)這個名為’getTarget’的事件,并將點擊事件的event.target順著事件傳遞出去。

接著,我們要在show組件中的created()鉤子中調(diào)用bus監(jiān)聽這個事件,并接收參數(shù):

created() { //如果傳遞參數(shù)的話,爺爺組件需要這樣接收 Bus.$on(’getTarget’, target => { console.log(target); }); //如果不傳遞參數(shù)的話,則可以如下處理 Bus.$on(’getTarget’,()=>{ //此處執(zhí)行對應(yīng)的函數(shù)操作 })}

這樣,在每次click組件的點擊事件中,就會把event.target傳遞到show中,并console出來。

所以eventBus的使用還是非常便捷的,但是如果是中大型項目,通信比較復(fù)雜,還是建議大家直接使用vuex。

補充知識:vue 2 使用Bus.js進(jìn)行兄弟(非父子)組件通信 簡單案例

vue2中廢棄了$dispatch和$broadcast廣播和分發(fā)事件的方法。父子組件中可以用props和$emit()。如何實現(xiàn)非父子組件間的通信,可以通過實例一個vue實例Bus作為媒介,要相互通信的兄弟組件之中,都引入Bus,之后通過分別調(diào)用Bus事件觸發(fā)和監(jiān)聽來實現(xiàn)組件之間的通信和參數(shù)傳遞。

首先需要在任意地方添加一個bus.js

vue 組件之間事件觸發(fā)($emit)與event Bus($on)的用法說明

在bus.js里面 寫入下面信息

import Vue from ’vue’

export default new Vue;

vue 組件之間事件觸發(fā)($emit)與event Bus($on)的用法說明

在需要通信的組件都引入Bus.js

如果你的bus.js是自定義一個bus的文件那from后面就改成你的所放的位置

import Bus from ’./bus.js’

vue 組件之間事件觸發(fā)($emit)與event Bus($on)的用法說明

接下來就是要組件通信了

添加一個 觸發(fā) #emit的事件按鈕

<template> <div id='emit'> <button @click='bus'>按鈕</button> </div> </template> import Bus from ’./bus.js’ export default { data() { return { message: ’’' } },methods: { bus () { Bus.$emit(’msg’, ’我要傳給兄弟組件們,你收到?jīng)]有’) } }}

打開要和$emit通信的另外一個組件 添加

vue 組件之間事件觸發(fā)($emit)與event Bus($on)的用法說明

在鉤子函數(shù)中監(jiān)聽msg事件

<template> <div id='on'> <p>{{message}}</p> </div></template>import Bus from ’./bus.js’export default { data() { return { message: ’’ } }, mounted() {let self = this Bus.$on(’msg’, (e) => { self.message = e console.log(`傳來的數(shù)據(jù)是:${e}`) }) } }

最后p會顯示來自$emit傳來的信息

以上這篇vue 組件之間事件觸發(fā)($emit)與event Bus($on)的用法說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品黄色| 亚洲欧美久久久| 久久久精品五月天| 亚洲日韩中文字幕一区| 久久久久久夜| 男女激情视频一区| 成人午夜毛片| 日欧美一区二区| 久久中文亚洲字幕| 久久av综合| 亚洲三级在线| 日韩精品欧美激情一区二区| 日韩国产欧美视频| 婷婷综合网站| 日本欧美在线| 欧美 日韩 国产精品免费观看| 国产精品久久久久久模特| 亚洲综合二区| 日韩免费福利视频| 国产视频一区二区在线播放| 欧美精品一二| 久久精品亚洲一区二区| 亚洲欧美日韩国产一区| 国产一区二区精品久| 日精品一区二区三区| 久久精选视频| 精品视频91| 日韩精品成人| 国产精品美女久久久| 国内精品伊人| 日本午夜精品一区二区三区电影 | 久久免费精品| 日韩美女精品| aa亚洲婷婷| 特黄特色欧美大片| 精品在线网站观看| 日韩av资源网| 蜜臀av国产精品久久久久| 香蕉久久精品| 福利视频一区| 欧美黑人做爰爽爽爽| 日本在线一区二区三区| 欧美精品一线| 日韩国产一区| 久久精品国产福利| 国产探花一区| 中文字幕一区二区av| 不卡在线一区| 欧洲av不卡| 激情黄产视频在线免费观看| 国产精品多人| 国产欧美91| 欧美日本久久| 欧美一级网址| 日韩精品视频网| 亚洲麻豆一区| 亚洲综合图色| 久久午夜精品| 国产免费成人| 99综合视频| 9色精品在线| 欧美大黑bbbbbbbbb在线| 蜜桃精品在线| 久久久久免费av| 99国产精品一区二区| 欧美aa在线观看| 国产精品yjizz视频网| 精品国产91| 国产一区精品福利| 精品国产精品久久一区免费式| 国产精品久久免费视频| 国产精品男女| 国产精品欧美日韩一区| 欧美另类中文字幕| 国产精品男女| 精品三级国产| 国产精品久久久久蜜臀| 久久男人av资源站| 天堂8中文在线最新版在线| 久久精品国产成人一区二区三区| 老色鬼精品视频在线观看播放| 美女性感视频久久| 成人国产精品一区二区网站| 麻豆国产在线| 一区二区三区视频免费观看| 欧美另类专区| 老鸭窝亚洲一区二区三区| 亚洲午夜免费| 日韩高清电影一区| 国产调教精品| 成人日韩av| 99视频精品全部免费在线视频| 91成人超碰| 亚洲日本久久| 久久不见久久见国语| 极品av在线| 午夜日韩av| 日韩精品免费视频人成| 欧美激情亚洲| 日韩国产一区二区| 国产一区二区高清| 清纯唯美亚洲综合一区| 国内不卡的一区二区三区中文字幕| 成人在线视频中文字幕| 欧美影院三区| 亚洲小说春色综合另类电影| 国产麻豆一区二区三区精品视频| 成人污污视频| 欧美.日韩.国产.一区.二区 | 欧美日韩国产探花| 亚洲免费资源| 久久精品二区亚洲w码| 亚洲二区视频| 亚洲欧洲美洲国产香蕉| 久久精品 人人爱| 日韩av有码| 在线一区视频| 国产精品www.| 欧美+日本+国产+在线a∨观看| 亚洲三级观看| 成人在线视频区| 亚洲欧美日韩视频二区| 免费看一区二区三区| 激情欧美一区二区三区| 欧美片第1页综合| 99久久亚洲精品| 欧美亚洲一级| 99视频精品全部免费在线视频| 日韩专区视频网站| 国语精品一区| 蜜桃一区二区三区在线观看 | 欧美日韩水蜜桃| 日韩精品视频网| 国产高清不卡| 一区二区高清| 韩国久久久久久| 日韩精品中文字幕一区二区| 日韩免费福利视频| 日本久久一区| 久久免费大视频| 国产欧美日韩一区二区三区在线| 视频小说一区二区| 奇米亚洲欧美| 婷婷综合六月| 国产免费av国片精品草莓男男| 欧美日韩第一| 国产一区二区三区免费在线| 免费精品视频在线| 日本蜜桃在线观看视频| 日本精品另类| 欧美日韩国产亚洲一区| 国产精品不卡| 青青国产91久久久久久| 午夜精品网站| 三级在线看中文字幕完整版| 18国产精品| 亚洲免费网址| 日韩成人亚洲| 欧美欧美黄在线二区| 亚洲精品1区| 午夜影院一区| 你懂的国产精品| 亚洲精品裸体| 欧美日韩国产一区精品一区| 97精品97| 国产精品玖玖玖在线资源| 六月丁香综合| 欧美日韩一区二区综合| 精品国产成人| 国产日韩一区二区三区在线| 亚洲在线免费| 香蕉精品久久| 国产suv精品一区二区四区视频 | 欧美激情 亚洲a∨综合| 午夜久久av | 精品国产一区二区三区av片| 日韩精品中文字幕吗一区二区| 欧美 日韩 国产精品免费观看| 久久精品国产亚洲aⅴ| 日韩va亚洲va欧美va久久| 久久国产高清| 91久久久精品国产| 91亚洲一区| 免费在线观看一区| 欧美中文一区| 日韩精品电影一区亚洲| 免费成人av在线播放| 亚洲精品在线观看91| 视频福利一区| 欧美日韩视频网站| 欧美国产小视频| 国产不卡精品在线| 你懂的网址国产 欧美| 69堂免费精品视频在线播放| 综合欧美精品| 亚洲精品自拍| 综合色就爱涩涩涩综合婷婷| 99在线|亚洲一区二区| 亚洲福利精品| 欧美一区二区性|