這篇文章將為大家詳細講解有關vue2.0中怎么實現兄弟組件通訊,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
1、前戲吧
個人理解:
這明顯是生活中弟弟打電話哥哥一樣,雙方都需要手機,需要信號發射塔。
弟弟 => A組件
哥哥 => B組件
弟弟的手機 => $emit發送數據
哥哥的手機 => $on監聽并接收數據
信號發射塔 => 中間事件線
App.vue => 不用說都知道是地球
2、 代碼
2.1、在src/asstes下新建中間事件線ligature .js (注意后綴.js)
import Vue from 'Vue' export default new Vue;
2.2、在src/components新建A.vue
<template> <div> <h3>A組件</h3> <button v-on:click="spot">點一下就傳</button> </div> </template> <script> import bus from '../assets/ligature'; export default { methods: { spot: function() { //監聽A組件中的spot,并發送數據 bus.$emit("spot", ' 沒想到吧??!我是A組件') } } } </script>
2.3、在src/components新建B.vue
<template> <div> <h3>B組件</h3> <p>結果:{{msg}}</p> </div> </template> <script> import bus from "../assets/ligature"; export default { data() { return { msg: "這TMD是默認值除非你點一下上面的按鈕" }; }, mounted() { var _this = this; //監聽A組件中的spot,并接受數據 bus.$on("spot", function(msg) { _this.msg = msg; }); } }; </script> <style> p{ font-size: 20px; color: darkcyan; } </style>
2.4、修改App.vue (地球),注冊這兩個組件,并添加這兩個組件的標簽
<template> <div id="app"> <A/> <hr> <B/> </div> </template> <script> import A from './components/A' import B from './components/B' export default { name: 'App', components: { A, B } } </script>
關于vue2.0中怎么實現兄弟組件通訊就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。