【Vue】子组件向父组件传值的几种方式

1.v-on事件的方式

在组件的模板表达式中,可以直接使用 $emit 方法触发自定义事件 (例如:在 v-on 的处理函数中):

<!-- 子组件ChildComponent.vue -->
<button @click="$emit('someEvent')">click me</button>

父组件可以通过 v-on (缩写为 @) 来监听事件:

<!-- 父组件App.vue -->
<ChildComponent @some-event="callback" />

tips:some-event和someEvent会自动匹配。
HTML 标签和属性名称是不分大小写的,所以浏览器会把任何大写的字符解释为小写。这意味着当你使用 DOM 内的模板时,无论是 PascalCase 形式的组件名称、camelCase 形式的 prop 名称还是 v-on 的事件名称,都需要转换为相应等价的 kebab-case (短横线连字符) 形式。
也就是说
<check-box-group @checkbox-confirm="doSomeThing"></check-box-group>

<CheckBoxGroup @checkboxConfirm="doSomeThing"></CheckBoxGroup>
两种写法是等价的
详细内容参见官方文档:组件基础

有了上面的基础,下面的例子就不难理解了。
这个例子想实现在子组件中checkbox选择的值传递给父组件使用

子组件CheckBoxGroup.vue


<script setup lang="ts">
import {
    ref } from 'vue';
const students = ref(['jack','john','bob','mike'])
const selectedNames =
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值