Es fundamental comprender el código de forma correcta previamente a usarlo a tu proyecto y si tquieres aportar algo puedes comentarlo.
Solución:
La mejor solución que encontré
Por 0.12
http://012.vuejs.org/guide/components.html#Inheriting_Parent_Scope
para 1.0
http://v1.vuejs.org/guide/components.html#Comunicación entre padres e hijos
para 2.0
https://vuejs.org/v2/guide/components.html#Composing-Components (utilice accesorios para vincular datos unidireccionales de padre a hijo)
Hay varias formas de hacerlo, y algunas se mencionan en otras respuestas:
- Usar accesorios en los componentes
- Usar modelo v attribute
- Usar el modificador de sincronización
- Usar Vuex
Para los enlaces bidireccionales, tenga en cuenta que puede causar una cadena de mutaciones que son difíciles de mantener, citadas en los documentos:
Desafortunadamente, true El enlace bidireccional puede crear problemas de mantenimiento, porque los componentes secundarios pueden mutar al principal sin que la fuente de esa mutación sea obvia tanto en el principal como en el secundario.
Aquí hay algunos detalles de los métodos que están disponibles:
1.) Use accesorios en los componentes
Los accesorios son fáciles de usar y son la forma ideal de resolver los problemas más comunes.
Debido a cómo Vue observa los cambios, todas las propiedades deben estar disponibles en un objeto o no serán reactivas. Si se agregan propiedades después de que Vue haya terminado de hacerlas observables, se deberá usar el ‘conjunto’.
//Normal usage
Vue.set(aVariable, 'aNewProp', 42);
//This is how to use it in Nuxt
this.$set(this.historyEntry, 'date', new Date());
El objeto será reactivo tanto para el componente como para el padre:
te paso un objeto/array como accesorio, se sincroniza de forma bidireccional automáticamente: cambie los datos en el elemento secundario, se cambia en el elemento principal.
Si pasa valores simples (cadenas, números) a través de accesorios, debe usar explícitamente el modificador .sync
Como se cita de –> https://stackoverflow.com/a/35723888/1087372
2.) Usar modelo v attribute
el modelo v attribute es azúcar sintáctico que permite una fácil unión bidireccional entre padre e hijo. Hace lo mismo que el modificador de sincronización, solo que usa un accesorio específico y un evento específico para el enlace.
Esta:
es lo mismo que esto:
Donde debe estar el apoyo valor y el evento debe ser aporte
3.) Usa el modificador de sincronización
El modificador de sincronización también es azúcar sintáctico y hace lo mismo que v-model, solo que los nombres de accesorios y eventos se establecen según lo que se esté utilizando.
En el padre se puede utilizar de la siguiente manera:
Desde el niño se puede emitir un evento para notificar al padre de cualquier cambio:
this.$emit('update:title', newTitle)
4.) Usa Vuex
Vuex es un almacén de datos al que se puede acceder desde todos los componentes. Los cambios se pueden suscribir.
Al usar la tienda Vuex, es más fácil ver el flujo de mutaciones de datos y se definen explícitamente. Mediante el uso de las herramientas de desarrollo de vue, es fácil depurar y revertir los cambios realizados.
Este enfoque necesita un poco más de repetitivo, pero si se usa a lo largo de un proyecto, se convierte en una forma mucho más clara de definir cómo se realizan los cambios y desde dónde.
Consulte la guía de introducción
Encontré que este es más preciso. https://vuejs.org/v2/guide/components.html#sync-Modifier solo en 2.3.0+ aunque. y honestamente todavía no es lo suficientemente bueno. debería ser simplemente una opción fácil para el enlace de datos ‘bidireccional’. así que ninguna de estas opciones es buena.
intente usar vuex en su lugar. tienen más opciones para tal fin. https://vuex.vuejs.org/en/state.html
Agradecemos que desees defender nuestra tarea fijando un comentario y dejando una valoración te damos las gracias.