父组件
<template>
<div>
<subwords :init-ele="draggingElement" @setElementNode="setElementNode(arguments)"></subwords>
</div>
</template>
<script>
export default {
name: "home",
data() {
return {
draggingElement: {}
}
},
methods: {
setElementNode(arg) {
// 父组件定义方法,接收子组件传递的修改后的参数和值
console.log(arg)
}
}
}
</script>
子组件
<template>
<div>
<div v-for="(item,index) in ele">
{{item}}
</div>
</div>
</template>
<script>
export default {
name: "subbarcode",
props: {
initEle: {
type: Object
},
},
data() {
return {
// 子组件重新定义一个参数接收父组件的值,从而不直接影响父组件的值
ele: this.initEle
}
},
watch: {
ele: {
handler(newData) {
// 监听子组件的ele参数,通过父组件定义的函数,把newData的值传递给父组件,多个参数值的后面用逗号隔开,父组件通过数组的方式接收
this.$emit("setElementNode", newData);
},
deep: true,
},
initEle: {
handler(val) {
// 监听父组件传递过来的initEle,父组件initEle每次值改变后,子组件的值也改变
this.ele = val
}
}
}
}
转自:http://www.baiqicms.com.cn/help/share/29.html