Estoy tratando de implementar tal algo usando vueJS:
:value.sync="firstValue" y :value.sync="secondValue" ;v-model="value" ;@keyup="$emit('update:value', value);" ;Nuevamente, el algoritmo funciona bien. Pero creo que lo estoy haciendo mal con esas cosas. Muté el valor de prop en cada componente usando v-model, lo cual no es bueno. Pero el modificador .sync no funcionará con el valor; lo he comprobado, solo funciona con accesorios, porque v-bind solo funciona con accesorios, como puedo ver... Por lo tanto, estoy muy contento de escuchar consejos para mejorar. .
Podría considerar usar una tienda como Vuex en este caso.
Puede usar v-model con componentes. Documentos
Dicho esto, haría algo como esto: Codepen
<field v-model="text"></field> <field v-model="processedText"></field>y luego usar observadores
watch: { text(text) { this.processedText = this.process(text); }, processedText(text) { this.text = this.process(text); } }Por supuesto, probablemente haya más de una forma de hacerlo, pero esta parece ser la ruta más corta :)
Gracias a todas las respuestas que ustedes proporcionaron. He aprendido algunos trucos nuevos de estos consejos. ¡Pero me gustaría hacer una aclaración y brindar la mejor opción (en mi opinión)!
Para empezar, mi método :
@input="$emit('input', $event.target.value)" v-bind:value="value" , donde value es un accesorio definido;@input="someValueChanged"> . E incluso podríamos tener un campo de escucha bidireccional dentro del padre, simplemente usando v-model en nuestros componentes personalizados: v-model="some value" .Las ventajas de mis métodos son claras: tenemos un componente universal para CUALQUIER tipo de entrada. Podemos crear oyentes personalizados escuchando directamente los eventos emitidos. Y podemos poner los modificadores necesarios, como .lazy en esas entradas personalizadas. No hay desventajas tbh, o aún no las he encontrado.
Respuesta de vch : método genial, lo probé, pero parece ser muy recursivo dentro del componente principal. Su codepen funciona, pero en mi caso (VueJS2) parece estar roto. Pero comencé con su método y simplemente eliminé los observadores inútiles y agregué detectores de eventos.
Respuesta de Pavan : De nuevo, método de trabajo. Realmente podríamos usar el almacenamiento para tal caso, pero veo algunas desventajas aquí:
¡Gracias a todos! ¡Fue muy útil!