vue3 defineExpose defineProps defineEmits父子组件传值/方法

defineExpose  子传父: 值、方法 

介绍:提供方法给父组件调用

<template>
  <div>
    这里是父组件
    <br />
    <button @click="clickA">点击调用</button>
    <son ref='sonref'></son>
  </div>
</template>
<script setup>
import  son  from '@/views/demo/son.vue'
// components: {
//   son
//     } 
const sonref = ref()
console.log(sonref, '打印sonref子组件实例')
    const clickA = () => {
     
      console.log(sonref.value.msg)
    sonref.value.open11()
    console.log('这里')
    }

</script>
<style scoped lang=""></style>
<template>
  <div>这里是子组件</div>
</template>
<script setup>
// 试验下子组件写方法让父组件使用
const open11 = () => {
  console.log('子组件调用的open方法');
};
const msg = ref('你好啊');
defineExpose({ open11, msg });
</script>
<style scoped lang=""></style>

defineProps 父传子: 值

<template>
  <div>
    这里是父组件
    <br />
    <!-- <button >点击调用</button> -->
    <son ref='sonref' :customerName="cName"></son>
  </div>
</template>
<script setup>
import  son  from '@/views/demo/son.vue'
const cName = ref('小猪猪')

</script>
<style scoped lang=""></style>
<template>
  <div>这里是子组件</div>
</template>
<script setup>
const props = defineProps(['customerName'])
onMounted(()=>{
  console.log(props.customerName, '打印父组件的值')
})
</script>
<style scoped lang=""></style>

defineEmits: 子传父 (vue2的emit。。)

介绍: 调用父组件的方法并传参

<template>
  <div>
    这里是父组件
    <br />
    <son ref='sonref' @getData="getFatherData" ></son>
  </div>
</template>
<script setup>
import  son  from '@/views/demo/son.vue'

const getFatherData = (dataName) => {
  console.log(dataName, '子组件调父组件方法并传的值')
}
</script>
<style scoped lang=""></style>
<template>
  <div>这里是子组件</div>
  <button @click="btnClick">点击调用父组件方法并传参</button>
</template>
<script setup>
let emits = defineEmits([`getData`])
const btnClick = () => {
  emits(`getData`, '成毅')
}
</script>
<style scoped lang=""></style>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值