Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

144
Views
Acceda a la lista de clases de elementos dom con la API de composición de Vue 3

Estoy tratando de ver si existe una clase en un elemento dom dentro de mi componente, pero no puedo encontrar la manera de hacerlo dentro del gancho onMounted:

Esta es una versión simplificada de mi plantilla:

 <template> <a ref="tabLink" href="#" role="tab" :class="{ chatUpdated: this.chatSessionId === tab.chatSessionId }" > {{ tab.title }} </a> </template>

Esta es mi función de configuración:

 setup() { const tabLink = ref(null); onMounted(() => { console.log(tabLink.value["0"].classList[0]); }); }

Como puede ver, intento consolar. registrar las clases de mi etiqueta <a> en mi plantilla, pero siempre obtengo un valor indefinido. Pensé que el DOM del componente ya estaba allí cuando se llama al gancho onMounted, así que no entiendo por qué obtengo un valor indefinido.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

La forma en que buscas la clase está mal.

Necesitas:

 const tabLink = ref(); // remove the null from here console.log(tabLink.value.className); // gets all the classes as string console.log(tabLink.value.className.split(" ")); // returns an array of classes
about 4 years ago · Juan Pablo Isaza Report

0

De los documentos de Vue :

Cuando muta el estado reactivo en Vue, las actualizaciones DOM resultantes no se aplican sincrónicamente. En cambio, Vue los almacena en búfer hasta el "siguiente tic" para garantizar que cada componente se actualice solo una vez, sin importar cuántos cambios de estado haya realizado.

En su caso, hay un enlace de clase en <a> que cambia según chatSessionId . El efecto de ese enlace se ve en el siguiente tick.

Solución

Espere una llamada a nextTick() para observar el efecto:

 👇 onMounted(async () => { 👇 await nextTick() // class list effect is now available console.log(tabLink.value[0].classList[0]) })

manifestación

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!