看你画的样式应该是父子子
父组件
<template>
<div>
<vInput @on-add='add'></vInput>
<subComp :list='list'><subComp>
</div>
</template>
<script>
import vInput from 'xxxxx'; //input组件
import subComp from 'xxxxx'; //列表组件
export default {
components: {vInput , subComp },
data() {
return {
list: []
}
},
methods: {
add(val) {
this.list.push(val)
}
}
}
</script>
input组件
<template>
<div>
<input v-model='value' />
<button @click='add'>添加</button>
</div>
</template>
<script>
import vInput from 'xxxxx'; //input组件
import subComp from 'xxxxx'; //列表组件
export default {
components: {vInput , subComp },
data() {
return {
value: []
}
},
methods: {
add(val) {
this.$emit('on-add', value)
}
}
}
</script>
列表组件
<template>
<div>
<div v-for='item in list' :key='item>{{item}}</div>
</div>
</template>
<script>
export default {
prop: {
list: Array
},
methods: {
}
}
</script>
兄弟组件 通信 可以 用eventBus 或者 借助 共同的父组件(先 子传父 ,再父传子)
https://www.cnblogs.com/zhaoyingzhen/p/15244958.html
就这样一个页面,还要爷子孙,三层吗?不想多层传props,就用provide,inject