vue 2 使用 Bus.js 實現兄弟 (非父子) 組件通信 簡單案例

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

?vue2中廢棄了$dispatch和$broadcast廣播和分發事件的方法。父子組件中可以用props和$emit()。如何實現非父子組件間的通信,可以通過實例一個vue實例Bus作為媒介,要相互通信的兄弟組件之中,都引入Bus,之后通過分別調用Bus事件觸發和監聽來實現組件之間的通信和參數傳遞。
首先需要在任意地方添加一個bus.js

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

 import Vue from 'vue'export default new Vue;

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

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

import Bus from './bus.js'

接下來就是要組件通信了

?添加一個 觸發 #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', '我要傳給兄弟組件們,你收到沒有')}}
}

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

?

?在鉤子函數中監聽msg事件

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

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

轉自:https://www.cnblogs.com/place-J-P/p/7586819.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448102.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448102.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448102.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jenkins自動化部署

jenkins自動化部署 github地址 首先設置源碼地址&#xff0c;jenkins會從倉庫中拉取最新代碼 拉取代碼后運行shell腳本自動進行編譯 cd mediaService cmake -S . -B cmake-build-release-hisi3531 -DCMAKE_C_COMPILER/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin…

JS-[IIFE閉包]

JS-IIFE&閉包 IIFE(立即調用函數表達式)示例IIFE實現單例模式閉包計數器例子非閉包實現閉包實現IIFE閉包實現內存泄露解決IIFE(立即調用函數表達式) 示例 (function iife(){ //直接執行&#xff0c;無需調用console.log("hello"); })(); //上面相當于function ii…

學開車不能急于求成,心急上路

我發現很多人開始學開車以后就急著要上路&#xff0c;覺得開車是很簡單的事情&#xff0c;個人覺得開車雖然不難&#xff08;相對于會開車的人來說&#xff09;&#xff0c;但是&#xff0c;雖然不是很難&#xff0c;也不是一學會開車起步就能上路去瀟灑的。急于求成的人很容易…

vue 組件間傳值、兄弟組件 、bus方式 ( 1 分鐘看懂 )

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 bus方式的組件間傳值其實就是建立一個公共的js文件&#xff0c;專門用來傳遞消息 1.建立公共文件&#xff0c;并引入 新建msgBus.js文件…

valgrind檢測libevent內存泄露

valgrind檢測libevent內存泄露 github地址 在使用封裝好的http庫時&#xff0c;遇到了如下的內存泄露&#xff0c;一開始在definitely處還存在泄露&#xff0c;這里就不貼圖了&#xff0c;已經被淹沒了。 根據提示定位出錯代碼位置&#xff0c;如下圖&#xff1a; 這里提示ev…

往對象數組里面添加相同的key 不同的value

應用場景&#xff1a;后盾字段沒有發給你 自己補充數據 <div v-for"item in list" :key"item.id"><p>{{ item.id}} ----> {{ item.name}} --->{{ item.sex }}---> {{ item.tel }}---->{{ item.link}}--插入數據</p></di…

vue 子組件 調用、觸發父組件中的方法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 我發現了兩種寫法。 方法一&#xff1a; 子組件&#xff1a; <template><button click"submit">提交</but…

新手必看一位老司機的十年開車經驗

今天&#xff0c;小編為大家收集整理了一個老司機的十年開車經驗&#xff0c;新手們一定要學哦&#xff0c;因為這種寶貴的開車經驗是我們以后開車過程中每天都要用到的常識。將來無論在什么時候&#xff0c;這種寶貴經驗都會給我們帶來更安全的行車時光。新手必看的十年開車經…

Protobuf使用

Protobuf使用 github地址 目錄 proto3的更新定義協議格式編譯protobufprotobuf_API 枚舉和嵌套類標準消息方法解析和序列化 寫一條消息閱讀消息編譯Protobuf擴展優化高級用法 proto3的更新 在第一行非空白非注釋行&#xff0c;必須寫&#xff1a; syntax "proto3&…

大佬(概率期望DP)

首先根據數據范圍&#xff0c;可以判斷基本上是n^2的復雜度 通過分析我們發現每一次都可以從m個數中任意選&#xff0c;既然任意選&#xff0c;那么此時的概率的分母就是不變的&#xff0c;然而題中涉及的是某一段的最大值&#xff0c;所以我們按套路假設 f[i][j]表示第i天&…

vue 父組件 調用 子組件的方法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 我們都知道通過$ref可以獲取到某個DOM&#xff0c;但是它也可以用來獲取子組件的實例&#xff0c;調用子組件的方法 例&#xff1a; 子…

新手開車13招技巧

開車是一個靠經驗積累技術的過程&#xff0c;新手們往往會在開車時遇到很多問題&#xff0c;我們用本篇文章和新手講述開車的各種技巧&#xff0c;希望每個新手都能從中受益。第1招技巧&#xff1a;上車前要先看車  上車前繞車轉一圈&#xff0c;看車的外況、輪胎、車底下有沒…

高效的數據壓縮編碼方式 Protobuf

高效的數據壓縮編碼方式 Protobuf github地址 目錄 ProtocolBuffers 是什么為什么要發明 ProtocolBuffersproto3 定義 Message 分配字段編號保留字段默認字段規則各個語言標量類型對應關系枚舉枚舉中的保留值允許嵌套枚舉不兼容性更新 Message未知字段Map 類型JsonMapping p…

解決 VUE前端項目報錯:RangeError: Maximum call stack size exceeded

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 我點擊菜單按鈕報錯&#xff1a; RangeError: Maximum call stack size exceeded 2. 原因&#xff1a;參數傳遞有問題或者方法調用有…

新手必須掌握的學車技巧-上坡起步

我們知道&#xff0c;做什么事情都是萬事開頭難&#xff0c;新手們在學車方面更能體會到這一點&#xff0c;正確掌握學車技巧對于新手來說是非常重要的事情&#xff0c;今天&#xff0c;平安學車網&#xff08;www.paxcw.com&#xff09;就會大家探討一下我們學車時必須掌握的是…

高效的序列化/反序列化數據方式 Protobuf

高效的序列化/反序列化數據方式 Protobuf github地址 目錄 protocolBuffers 序列化 Int32StringMapslice序列化小結 protocolBuffers 反序列化 Int32StringMapslice序列化小結 序列化/反序列化性能最后 protocolBuffers序列化 上篇文章中其實已經講過了 encode 的過程&…

如何配置一個Oracle服務

1、網絡服務名&#xff1a;即填寫OracleTNS的值&#xff0c;如OracleTNSorcl_192.168.1.125&#xff0c;填寫orcl_192.168.1.1252、主機名&#xff1a;192.168.1.1253、服務名&#xff1a;orcl4、測試成功即可。 轉載于:https://www.cnblogs.com/dengshiwei/p/4258719.html

解決 VUE前端項目報錯: Uncaught ReferenceError : initPage is not defined (initPage 方法是有的,依舊報錯找不到)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 明明代碼中定義了 initPage 這個方法&#xff0c;&#xff0c;卻一直報找不到這個方法&#xff1a; Uncaught ReferenceError: init…

掌握新手學車技巧對于新手來說是非常重要的

剛開始學車的時候對于新手來說很多操作不知道從哪里下手&#xff0c;這個時候&#xff0c;如果按照相關的學車技巧來學習的話&#xff0c;對于新手來說是非常有好處的。下面我們就來學習一下讓新手們可以快速進入開車狀態的學車技巧吧&#xff01;基本上駕校的教練都會教學員把…

iView學習筆記(三):表格搜索,過濾及隱藏列操作

iView學習筆記(三)&#xff1a;表格搜索&#xff0c;過濾及隱藏某列操作 1.后端準備工作 環境說明 python版本&#xff1a;3.6.6 Django版本&#xff1a;1.11.8 數據庫&#xff1a;MariaDB 5.5.60 新建Django項目&#xff0c;在項目中新建app&#xff0c;配置好數據庫 api_test…