VueJs从父组件获取子表单数据

Mar*_*tan 5 vue.js vue-component vuejs2 vuejs3

我的子组件中有一个表单:

<form @submit="submitForm">
  <input type="text" v-model="textInput" />
</form>

export default {
  name: "childComp",
  data: function() {
    return {
     textInput: ""
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,我的父组件中有一个按钮,我需要单击该按钮来获取子表单数据。

<button type="button" @click="getFormData()"> click </button>

export default {
  name: "ParentComp",
  data: function() {
    return {
     formData: []
    }
  },
  methods: {
    getFormData(d) {
      formData.push(d);
      console.log(d)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

感谢你的帮助。

Mar*_*tan -1

我找到了使用的解决方案ref=""。不确定未来会变得多么复杂。

这就是我所做的。

My parent component:

<button type="button" @click="getFormData()"> click </button>
<childComp ref="childComp" />

export default {
  name: "ParentComp",
  data: function() {
    return {
     formData: []
    }
  },
  methods: {
    getFormData() {
      const data = this.$refs.childComp.submitForm()
      formData.push(data);
      console.log(data)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我的子组件:

<form @submit="submitForm">
  <input type="text" v-model="textInput" />
</form>

export default {
  name: "childComp",
  data: function() {
    return {
     textInput: ""
    }
  },
  submitForm() {
    return this.form;
  }
}
Run Code Online (Sandbox Code Playgroud)