Vue 中父组件如何获取子组件中form的值

一:场景介绍

笔者在一个商城项目中有这样一个场景,商品管理维护vue组件中,使用了一个富文本编辑器用于编辑商品详情,由于此编辑器多处使用到,故而将此抽离存放在一个单独的vue组件中,需要使用该编辑器的界面,可以使用import来引入该vue组件,做为子组件。

但在实际使用过程当中,却发现取值或者是赋值遇到了困难,故记录下此解决方法,方便他人也便于自己以后查找。

二:具体代码

详细的代码我就不贴上来了,主要还是在Product.vue中引入MEdit.vue

Product.vue代码

<template>

<MEdit></MEdit>
。。。。。。

</template>
<script>
  import addForm from '@/view/MEdit.vue'
  export default {
      components: {Product},
      ......
   }
</script>

MEdit.vue代码很简单,就是一个简单的富文本编辑器的使用

三:取值方法

在获取到该方法之前,采用了至少两种方法,包括定义v-model来取值,都以失败告终。

Product.vue

<template>

<MEdit ref="medit"></MEdit>
。。。。。。

</template>
<script>
  import addForm from '@/view/MEdit.vue'
  export default {
      components: {Product},
      ......
   }
</script>

注意这里的ref方法  增加一个ref,父组件能通过$refs直接拿到子组件实例。

this.$refs.medit.form

 使用上面的方法即可以取到你要的组件中的对象值。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

.NET C# JAVA 基础交流群  1095936339  欢迎入群 交流

### Vue父组件获取子组件数据的方法 在 Vue.js 应用程序中,父组件可以通过多种方式来获取子组件中的数据。以下是几种常见的方式: #### 使用 `$refs` 和自定义方法 一种常见的做法是在子组件中定义一个方法用于返回所需的数据,在父组件通过 `ref` 属性引用该子组件实例并调用此方法。 ```html <!-- 子组件 addindex.vue --> <template> <!-- 组件模板 --> </template> <script> export default { data() { return { procedure: 'some value' } }, methods: { getVal() { // 定义一个供父组件调用的方法 return this.procedure; } } } </script> ``` 当需要从父组件访问这些信息时,则可以在父组件里设置按钮或其他触发器,并在其处理函数内部利用 `$refs` 来执行子组件内的特定逻辑[^1]。 ```javascript // 父组件 script 部分 methods: { submitForm() { const item = this.$refs["eidtList"].getVal(); // 调用子组件的方法获得其内部状态 console.log(item, "获取子组件填写的内容"); } } ``` 需要注意的是这里假设了子组件有一个名为 `"eidtList"` 的 ref 被赋予它;实际开发过程中应当确保这个名称匹配实际情况[^2]。 对于更现代的 Vue 版本(如 Vue 3),还可以采用组合式 API 提供更加灵活的方式来实现相同的功能——即通过 setup 函数暴露公共属性和行为给外部使用[^3]。 ```typescript // 子组件 (Vue 3 Composition API) import { defineComponent } from 'vue'; export default defineComponent({ setup(props, context) { function passFather(callback, data) { // 这里的 callback 或者 data 是传递给父级使用的回调或者数据 if(typeof callback === 'function') callback(data); } return { passFather, }; }, }); ``` 以上就是在不同版本下让父组件成功取得来自子组件的信息的一些基本模式和技术要点。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从入门到放弃-咖啡豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值