鍍金池/ 問(wèn)答/HTML/ vue遞歸組件如何傳遞事件給父組件?

vue遞歸組件如何傳遞事件給父組件?

如題,根據(jù)數(shù)據(jù)遍歷遞歸,不明確具體會(huì)遍歷幾次,形式大概如下:

<parent>
    <children>
        <children>
            <children>
                ...
            </children>
        </children>
    </children>
</parent>

我現(xiàn)在要在最后一層children傳出數(shù)據(jù)到parent接收,但是emit只能向上傳遞一層,有什么好的解決方案嗎?除了用vuex我沒(méi)好的想法了

回答
編輯回答
淡墨

vuex就是為了解決數(shù)據(jù)深層傳遞、兄弟組件數(shù)據(jù)傳遞的最佳方式。

2017年7月22日 23:31
編輯回答
薄荷綠

用eventBus 策略。
定義:

// bus.js
import Vue from 'vue'
export default new Vue()

使用:
parent

// parent.vue
import bus from './bus'

export default {
    mounted(){
        bus.$on('post-message',(msg)=>{
            console.log(msg)
        })
    }
}

children:

// children.vue
import bus from './bus'

export default {
    mounted(){
        bus.$emit('post-message','發(fā)送')
    }
}
2017年6月14日 15:29