Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

242
Visualizações
¿Es una buena práctica pasar la instancia del componente como accesorios a otro componente en VueJs?

Supongamos que vamos a hacer un editor de texto.

Al escribir, el componente C (sección de entrada de texto) necesita el estado del componente B (selector de estilo de fuente) para determinar qué estilo usar.

ingrese la descripción de la imagen aquí

Podemos compartir ese estado por Vuex, pero en OOP, es mejor poner la lógica o las variables relacionadas en la misma clase, y cuando otros componentes necesitan el estado de ese objeto, solo para referirlo directamente.

Si quiero hacer referencia a los componentes directamente, una forma es guardar algunos componentes cuando están montados y pasarlos como accesorios a otros componentes de la siguiente manera.

 // in <template> <FontStylePickerVue ref="stylePicker" /> <TextInputSectionVue ref="textInputSection" v-bind="{ tylePickerComp: stylePickerComp }" /> //in Main Component <script> mounted(){ this.tylePickerComp = this.$refs.stylePicker; } data(){ return { tylePickerComp : null } }

En Vue, aunque hay muchas formas de comunicarse entre los componentes, nunca vi que ninguno de ellos pasara la instancia del componente como accesorios directamente de esta manera. (Funciona, y muy conveniente aunque.)

Sé que hacer esto, en cierto modo, hace que el sistema sea más complicado porque los componentes se refieren entre sí en una relación compleja, pero me pregunto si hay algún patrón de diseño como este en Vue, o hacer esto tiene algunas desventajas como bajo rendimiento, etc.

Al final, para aclarar la idea, quiero comparar qué pasa si paso el componente como accesorios directamente o uso métodos comunes en este ejemplo:

  1. Pase el componente como accesorios directamente:
    Es necesario guardar la referencia del componente en el montaje, pero la declaración de tipo es una vez por todas (por ejemplo, use InstanceType). Necesito lidiar con nulo (es nulo antes de montarlo).

  2. Autobús de eventos:
    Emita un evento con una función de resolución de promesa como devolución de llamada para hacer que otros componentes se resuelvan con su estado. Esto es bueno porque mantendrá los datos o la lógica en la misma clase (en comparación con el uso de Vuex), pero debe escribir su método en un estilo de promesa para leer el resultado resuelto.

  3. Vuex:
    Divida algunas variables en alcance global, y esto no es tan compatible para casos en los que es mejor recopilar lógica y datos en el mismo lugar.

Solo quiero tener una idea de este tema, lo siento por el artículo largo.

about 4 years ago · Santiago Gelvez
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda