vue3+Ts emit组件传值

实现效果:点击按钮-->打开弹窗-->关闭弹窗,将弹窗中的值传回

 

 主页面:

<template>
  <div  style="padding: 2%">
    <el-button type="primary" @click="open" size="small">按钮</el-button>
    <div>名字:{{ name }}</div>
    <div>年龄:{{ age }}</div>
    <add-or-update ref="dialogRef" @my-name=myName @my-age=myAge></add-or-update>
  </div>
</template>

<script setup lang="ts">

import AddOrUpdate from "./add-or-update.vue";
import { ref } from "vue";
let dialogRef = ref()
let name = ref('')
let age = ref('')
const myName = (val:any) => {
  name.value = val
}
const myAge = (val:any) => {
  age.value = val
}
const open = () => {
  dialogRef.value.init()
}

</script>

 弹框:

<template>
	<el-dialog v-model="visible" title="111" :close-on-click-modal="false">
    <div>名字: {{ myName }}</div>
    <div>年龄: {{ myAge }}</div>
    <template #footer>
			<el-button type="primary" @click="closeHandle()">确定</el-button>
		</template>
	</el-dialog>
</template>

<script setup lang="ts">
import { ref } from "vue";
const emit = defineEmits({})
const visible = ref(false)
const myName = ref<any>('尽快咯')
const myAge = ref<any>(23)
const closeHandle = () => {
  emit('my-name', myName)
  emit('my-age', myAge)
	visible.value = false
}
const init = () => {
  visible.value = true
}
defineExpose({
	init
})
</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值