Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

210
Vistas
Vue cómo acceder a los accesorios del componente principal: el importador no es un contenedor

Objetivo general: desde un componente secundario de Vue, obtenga acceso al componente en el que se importa y se usa , que no siempre es lo mismo que $parent . Esto debe hacerse solo haciendo cambios dentro del componente secundario (si es posible).

Tenemos el componente PinButton Vue destinado a agregar una funcionalidad de "fijación" a otros componentes. Este componente se usa dentro de muchos otros componentes y queremos poder acceder a los accesorios principales para que puedan guardarse y renderizarse en una página diferente de "contenido anclado" pasando esos accesorios nuevamente al componente principal.

Nota: sé que esto sería posible al pasar manualmente los accesorios principales al componente ( <pin-button :parent-props="$props" /> ), pero estamos tratando de evitar tener que hacer esto cada vez que el se utiliza el componente.

Una reproducción mínima de esto con un solo componente principal y secundario mostrará que puede acceder a los accesorios principales usando $parent.$props . Sin embargo, cuando el componente secundario está anidado como contenido de ranura de algún otro componente dentro del principal, el componente secundario obtendrá los accesorios del componente contenedor, no el componente en el que se importa y se usa realmente.

Reproducción de sandbox: quiero obtener los accesorios para ParentComponent desde ChildComponent . El valor esperado se muestra al pasar los accesorios (lo que estoy tratando de evitar) y el valor real son los accesorios del componente SlotWrapper , que no importa ChildComponent , por lo que no lo consideraría el verdadero padre, pero es el elemento principal directo en la <template>

Actualización: parece que la solución sugerida para el acceso "arbitrariamente profundo" es proporcionar/inyectar , pero esto aún parecería requerir cambiar todos los componentes que usan el <pin-button />

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Para responder a su pregunta directamente, puede acceder a ParentComponent desde ChildComponent a través del "contexto" en el que se representa el componente:

 // ChildComponent.vue computed: { expectedProps() { return this.$vnode.context.$props } }

Pero esto podría ser un tipo de problema "XY" ; Estoy seguro de que hay una mejor solución de diseño para lo que está tratando de lograr.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda