Vue传递值并提交

  1. 封装好的子组件 (MyForm.vue)
html 复制代码
<template>
  <form @submit.prevent="handleSubmit">
    <label for="name">Name:</label>
    <input type="text" v-model="formData.name" />

    <label for="email">Email:</label>
    <input type="email" v-model="formData.email" />

    <button type="submit">Submit</button>
  </form>
</template>

<script>
export default {
  props: {
    initialData: {
      type: Object,
      required: true
    }
  },
  data() {
    return {
      formData: {
        name: this.initialData.name || '',
        email: this.initialData.email || ''
      }
    };
  },
  methods: {
    handleSubmit() {
      this.$emit('formSubmit', this.formData);  // 向父组件提交数据
    }
  }
};
</script>
  1. 父组件 (App.vue)
html 复制代码
<template>
  <div>
    <h1>Parent Component</h1>
    <MyForm :initialData="formData" @formSubmit="handleFormSubmit" />
  </div>
</template>

<script>
import MyForm from './components/MyForm.vue';

export default {
  components: {
    MyForm
  },
  data() {
    return {
      formData: {
        name: 'John Doe',
        email: 'john.doe@example.com'
      }
    };
  },
  methods: {
    handleFormSubmit(submittedData) {
      console.log('Form submitted with data:', submittedData);
      // 这里可以进行进一步的处理,例如发请求
    }
  }
};
</script>

解释:

  1. 子组件 (MyForm.vue)

    • 使用 props 接收从父组件传入的数据,并将这些数据与组件内部的 formData 进行绑定。
    • 通过 v-model 双向绑定输入框的值。
    • 提交表单时,触发自定义事件 formSubmit,并将 formData 数据通过 $emit 传递给父组件。
  2. 父组件 (App.vue)

    • 通过 props 传递初始表单数据给子组件。
    • 使用 @formSubmit 监听子组件提交事件,接收到提交的数据后在控制台输出或进行其他处理操作。

这样,子组件中的表单提交事件会触发父组件的处理函数,你可以在父组件中对提交的数据进行进一步的处理(如发送 API 请求)。

相关推荐
wu8587734572 分钟前
向量数据库不是银弹:从枚举漏检到 ReACT 多轮召回的实践路径
前端·数据库·react.js
古怪今人6 分钟前
[前端]HTML盒模型与尺寸,标准文档流,块级元素、内联元素和行内块,CSS选择器
前端·css
小雨下雨的雨27 分钟前
基于鸿蒙PC Electron框架技术完成的表单验证技术详解
前端·javascript·华为·electron·前端框架·鸿蒙
提子拌饭13328 分钟前
饮料含糖量查询应用 - 鸿蒙PC用Electron框架完整实现
前端·javascript·华为·electron·前端框架·鸿蒙
JustHappy29 分钟前
古法编程秘籍(五):什么是进程和线程?从软件到 CPU 的一次完整旅程
前端·后端·代码规范
爱编程的小金37 分钟前
前端请求库的下一个进化方向:从 Promise 到策略化
前端·alova·前端请求库·请求策略
hsg7738 分钟前
简述:Jensen Huang‘s Footsteps网站全内容分析
前端·javascript·数据库
珑墨1 小时前
前端 AI 开发通用skill
前端
kyriewen1 小时前
一个人+Cursor,7天上线付费小程序:第1天我就想放弃了
前端·微信小程序·cursor
大家的林语冰1 小时前
Angular 王者归来,第 22 个主版本亮相,一大波前沿技术再度引领潮流!
前端·javascript·前端框架