Vue消息發(fā)布與訂閱

在Vue的原型上定義一個變量bus,在所有的組件里都可以這個變量,使用this.bus.$emit()發(fā)布消息,this.bus.$on訂閱消息

<!--  在Vue的原型上定義一個變量bus,所有Vue的實(shí)例或組件都將共享這個bus,可以用bus來發(fā)布消息或訂閱消息  -->
    Vue.prototype.bus = new Vue();
    new Vue({
        el: '#root',
        mounted(){
            // 在所有的組件上都可以訂閱這條消息
            // 參數(shù)1發(fā)布者的名稱,參數(shù)3接收的值
            this.bus.$on('chen',(msg)=>{
                console.log(msg)
            })
        },
        components: {
            com:{
                template: "<button @click='sub'>子組件</button>",
                methods: {
                    // 在發(fā)布者定義發(fā)布者
                    sub(){
                        // 參數(shù)1發(fā)布者名稱,參數(shù)2傳遞的值
                        this.bus.$emit('chen',"這是子組件傳給去的值")
                    }
                }
            },
            com1:{
                template: "<div>子組件2</div>",
                mounted(){
                    // 在子組件里同樣可以訂閱
                    this.bus.$on('chen',(msg)=>{
                        console.log(msg)
                    })
                },
            },
        }
    })

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Vue.js特性:漸進(jìn)式技術(shù)棧 輕量級的框架 雙向數(shù)據(jù)綁定 指令 插件化 Vue實(shí)例書寫模板: 訪問Vue實(shí)例的屬...
    貓曉封浪閱讀 1,525評論 0 0
  • 前言 組件是 vue.js最強(qiáng)大的功能之一,而組件實(shí)例的作用域是相互獨(dú)立的,這就意味著不同組件之間的數(shù)據(jù)無法相互引...
    用技術(shù)改變世界閱讀 2,304評論 1 3
  • Vue.js 基礎(chǔ) 一套用于構(gòu)建用戶界面的漸進(jìn)式框架, 核心庫只關(guān)注視圖層,易于上手,便于與第三方庫或現(xiàn)有項(xiàng)目整合...
    前端小咖閱讀 2,389評論 1 33
  • 響應(yīng)式布局的理解 響應(yīng)式開發(fā)目的是一套代碼可以在多種終端運(yùn)行,適應(yīng)不同屏幕的大小,其原理是運(yùn)用媒體查詢,在不同屏幕...
    懶貓_6500閱讀 857評論 0 0
  • 晚上爸爸發(fā)來微信,很開心地說家里的新房子外墻的瓷磚已經(jīng)都貼完了,很漂亮,改天拍一張發(fā)給我,我笑著說好啊好啊。 爸爸...
    二肆閱讀 324評論 0 3

友情鏈接更多精彩內(nèi)容