效果图
父组件
<template>
<a-card :bordered="false">
<!-- 父组件 -->
<a-button @click="addProduct">父组件</a-button>
<!-- 子组件 -->
<SemiProduct ref="semiProduct" :formData="formData" @hideProduct="hideProduct" />
{{ obj }}
</a-card>
</template>
<script>
import SemiProduct from './components/semiProduct.vue'
export default {
components: {
SemiProduct
},
data() {
return {
formData:'',
obj:{},
}
},
methods: {
addProduct() {
this.formData = '子组件子组件子组件'
this.$refs.semiProduct.addProduct()
},
hideProduct(obj) {
this.obj = obj
console.log(obj,'子组件传过来的值')
},
}
}
</script>
子组件
<template>
<a-modal v-model="showProduct" v-if="showProduct" title="子组件" ok-text="确认" cancel-text="取消" :width="1200"
@ok="hideProduct" destroyOnClose>
<h1>我是子组件 {{ formData }}</h1>
</a-modal>
</template>
<script>
export default {
props: {
formData: {
type: String,
default: '',
},
},
data(){
return{
showProduct:false,
}
},
methods: {
addProduct(){
this.showProduct = true
},
hideProduct() {
this.showProduct = false
let obj = {
type:'子组件向父组件传值'
}
this.$emit('hideProduct', obj)
}
}
}
</script>