我有一个带有不同选项卡的复杂表单。我vue-router习惯于在这些组件之间切换,并在其中router-view为每个组件显示不同的模块化组件。在这些选项卡中,我的子组件有时带有其他嵌套的子组件。我使用这种event bus方法将数据从这些子组件传递到树中。我这样做是因为最后一个选项卡将是表单的摘要,我需要访问所有表单数据。目前我正在使用类似下面的东西。
例如使用这个结构:
|App
--|Start
--|Question 1
--|Answer 1
--|Answer 2
--|Question 2
...
在根组件(App)中:
data() {
return {
questions: 0,
answers: []
}
},
created() {
eventBus.$on('answer-added', answer => {
let answer_exists = false
this.answers.forEach( (e, i) => {
if(e.id == answer.answer_id) answer_exists = true
});
if(!answer_exists) this.answers.push({
id: answer.answer_id,
answer: answer.answer_text
})
});
}
每次触发来自孩子的事件时,在 App 组件中创建/更新/删除答案数组的正确方法是什么?我敢肯定,一定有比遍历数组元素更好的方法来检查答案是否已经存在......只是想不通。
拉莫斯之舞
一只萌萌小番薯
皈依舞
相关分类