Quiero transmitir los datos del elemento de entrada de la composición secundaria a la propiedad de datos de la composición principal
usando el método $emit , los datos se pueden transmitir al padre
vincular directamente la propiedad transmitida en la propiedad secundaria usando v-bind <input v-model="userinput" /> da como resultado una Advertencia
runtime-core.esm-bundler.js?5c40:6870 [Vue warn]: Extraneous non-emits event listeners (transmitData) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option. at <UserInput onTransmitData=fn<bound receaveData> > at <App>¿Cuál es la forma correcta de hacer este tipo de operación?
\\ child <template> <input v-model="userinput" /> <button type="button" @click="transmitData">transmit</button> </template> <script> export default { data() { return { userinput: " dd", } }, methods: { transmitData(event){ this.$emit('transmit-data', this.userinput) } } } </script> \\ parent <template> <user-input @transmit-data="receaveData" /> <p>{{ childData }}</p> </template> <script> import UserInput from "./components/UserInput.vue"; export default { name: "App", components: { UserInput, }, data() { return { childData: " " }; }, methods: { receaveData(compTransmit){ console.log(compTransmit) this.childData = compTransmit }, }, }; </script>debe especificar una opción de emisión en los documentos del componente secundario
así que en tu caso debería verse así
export default { emits: ['transmit-data'], // you need to add this :) data() { return { userinput: " dd" } }, methods: { transmitData(event){ this.$emit('transmit-data', this.userinput) } } }