El renderizado condicional en Vue.js permite mostrar u ocultar elementos en el DOM basándose en condiciones específicas. Esto es fundamental para crear interfaces de usuario dinámicas y reactivas. En esta sección, aprenderemos cómo utilizar las directivas v-if, v-else-if, v-else y v-show para controlar el renderizado condicional en nuestras aplicaciones Vue.

Directiva v-if

La directiva v-if se utiliza para renderizar un bloque de contenido solo si la expresión asociada se evalúa como verdadera.

Ejemplo Básico

<div id="app">
  <p v-if="isVisible">Este texto es visible</p>
</div>

<script>
  new Vue({
    el: '#app',
    data: {
      isVisible: true
    }
  });
</script>

En este ejemplo, el párrafo <p> se renderiza solo si isVisible es true.

Explicación

  • v-if="isVisible": La directiva v-if evalúa la expresión isVisible. Si es true, el contenido del elemento se renderiza; de lo contrario, no se renderiza.

Directiva v-else-if y v-else

Las directivas v-else-if y v-else se utilizan junto con v-if para manejar múltiples condiciones.

Ejemplo

<div id="app">
  <p v-if="score >= 90">Excelente</p>
  <p v-else-if="score >= 75">Bueno</p>
  <p v-else-if="score >= 50">Regular</p>
  <p v-else>Insuficiente</p>
</div>

<script>
  new Vue({
    el: '#app',
    data: {
      score: 85
    }
  });
</script>

En este ejemplo, se muestra el mensaje correspondiente según el valor de score.

Explicación

  • v-else-if="score >= 75": Se evalúa si score es mayor o igual a 75. Si es true, se renderiza el contenido del elemento.
  • v-else: Se renderiza si ninguna de las condiciones anteriores es verdadera.

Directiva v-show

La directiva v-show también se utiliza para mostrar u ocultar elementos, pero a diferencia de v-if, no elimina el elemento del DOM. En su lugar, utiliza la propiedad CSS display para controlar la visibilidad.

Ejemplo

<div id="app">
  <p v-show="isVisible">Este texto es visible</p>
</div>

<script>
  new Vue({
    el: '#app',
    data: {
      isVisible: true
    }
  });
</script>

En este ejemplo, el párrafo <p> se muestra u oculta basándose en el valor de isVisible.

Explicación

  • v-show="isVisible": La directiva v-show controla la visibilidad del elemento utilizando la propiedad CSS display. Si isVisible es true, el elemento se muestra; de lo contrario, se oculta.

Comparación entre v-if y v-show

Característica v-if v-show
Renderizado Añade o elimina el elemento del DOM Controla la visibilidad mediante CSS
Coste de rendimiento Mayor, debido a la manipulación del DOM Menor, solo cambia la propiedad display
Uso recomendado Cuando la condición cambia con poca frecuencia Cuando la condición cambia con frecuencia

Ejercicio Práctico

Ejercicio

Crea una aplicación Vue que muestre un mensaje de bienvenida solo si el usuario está autenticado. Si el usuario no está autenticado, muestra un mensaje de error.

Solución

<div id="app">
  <p v-if="isAuthenticated">Bienvenido, usuario!</p>
  <p v-else>Por favor, inicia sesión.</p>
</div>

<script>
  new Vue({
    el: '#app',
    data: {
      isAuthenticated: false
    }
  });
</script>

Explicación

  • v-if="isAuthenticated": Muestra el mensaje de bienvenida si isAuthenticated es true.
  • v-else: Muestra el mensaje de error si isAuthenticated es false.

Resumen

En esta sección, hemos aprendido cómo utilizar las directivas v-if, v-else-if, v-else y v-show para controlar el renderizado condicional en Vue.js. Estas herramientas son esenciales para crear interfaces de usuario dinámicas y reactivas. En el próximo tema, exploraremos el renderizado de listas en Vue.js.

Curso de Vue.js

Módulo 1: Introducción a Vue.js

Módulo 2: Conceptos Básicos de Vue.js

Módulo 3: Componentes de Vue.js

Módulo 4: Vue Router

Módulo 5: Gestión de Estado con Vuex

Módulo 6: Directivas de Vue.js

Módulo 7: Plugins de Vue.js

Módulo 8: Pruebas en Vue.js

Módulo 9: Conceptos Avanzados de Vue.js

Módulo 10: Construcción y Despliegue de Aplicaciones Vue.js

Módulo 11: Proyectos Reales con Vue.js

© Copyright 2024. Todos los derechos reservados