vue3子传父——v-model辅助值传递


title: 子组件向父组件传值

date: 2025-04-27 19:11:09
tags: vue3

vue3子传父------v-model辅助值传递

一、子组件发出

1.步骤一创建emit对象

这个对象使用的是defineEmits进行的创建,emit的中文意思又叫发出,你就把他当成一个发出数据的函数方法来用。

js 复制代码
const emit = defineEmits(['update:要传递的对象1','update:要传递的对象2']);
const emit = defineEmits(['update:selectSummary']);

**注意:**要写'update:'的原因是这是vue3的一种约定方式,你可以不这么写,但是一旦父组件调用你的方式涉及到了v-model,这种情况下你必须写'update:'这种形式,要不然父组件找不到你传出来的数据。

2.子组件使用emit对象

一般来说会写一个监听函数或者计算函数,来监听想向外传递的数据,以达到子组件的数据一改变就传递的目的。但方式多样看自己的需求写相关的函数,适当时机触发就可以。

js 复制代码
// 监听选择的对象数组,滤出想要的数据
watch(selection, () => {
    let arr = selection.value.map((item) => { //处理数据
      return item.content;
    });
    emit('update:selectSummary', arr);//发出处理好的数据
  });

二、父组件接受

使用v-model接收对象。在父组件中使用v-model来进行对象的接收。这是一种约定

v-model:名字='父组件对象'

emit('update:名字',子组件对象)

js 复制代码
<chird v-model:selectSummary="selectSummary" /> // 可以写一样的名字
<chird v-model:selectSummary="summary" /> // 也可以写不一样的名字

注意:

v-model实际上只是一种双向绑定简写方法

js 复制代码
<ChildComponent v-model:selectSummary="summary" />

实际写法

js 复制代码
<ChildComponent 
  :selectSummary="summary" // summary将值传递给子组件的selectSummary对应的对象
  @update:selectSummary="(newValue) => summary = newValue"  //更新函数,值给summary
/>
相关推荐
名字还没想好☜几秒前
React setState 连续调用「丢更新」排查:批量更新与函数式更新
前端·javascript·react.js·react·usestate
come1123416 分钟前
Vue 2 与 Vue 3 语法区别及使用技巧
前端·javascript·vue.js
腻害兔28 分钟前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:ERP 企业资源模块,一个轻量级进销存的完整实现?
前端·javascript·vue.js·人工智能·前端框架·产品经理·ai编程
虹科网络安全39 分钟前
艾体宝新闻|从 SQL 注入到服务器接管:CVE-2026-57517 暴露 Web 管理面板的供应链与安全编码风险
服务器·前端·sql
糖果店的幽灵1 小时前
langgraph的四种state解析
java·前端·javascript·langgraph
顺颂时绥_11 小时前
前端大图片压缩与安卓/苹果设备矫正实践
前端
Csvn1 小时前
JSON.parse 大数精度丢失:一个让前后端互相甩锅的 Bug
前端
Helen_cai1 小时前
OpenHarmony 项目统一全局样式、尺寸、色彩主题封装 ThemeUtil(API23)
开发语言·前端·javascript·华为·harmonyos
郑州光合科技余经理1 小时前
家政O2O平台解析:从0搭建上门预约小程序解决方案
android·java·开发语言·前端·小程序·架构·php
小徐_23332 小时前
AI 写 wot-ui 总在猜 API?我们把 Skills、MCP 和 CLI 都配好了
前端·uni-app·ai编程