Guía intermedia de Vue.js

Guía intermedia de Vue.js

¡Hola! Si ya dominas los conceptos básicos de Vue.js y deseas actualizar tus conocimientos, ¡estás en el lugar correcto!

Dejemos atrás el nivel principiante y pasemos al nivel intermedio, que es donde todo empieza a ponerse más serio.

En primer lugar, ¿ya lo conoces?

Antes de continuar con este artículo sobre Vue.js intermedio, es importante asegurarse de que ya está familiarizado con los conceptos básicos.

Si aún no has explorado el mundo de Vue.js, te sugiero que leas mi artículo Creando tu primera aplicación en Vue.js, disponible aquí en Listopro Community. Allí encontrarás información sobre la configuración del entorno, mercado laboral y las ventajas de utilizar Vue.js, así como una introducción al lenguaje.

Este artículo que mencioné también cubre temas básicos, tales como: ejecución del proyecto, creación del componente principal y pruebas mínimas de interactividad.

Sintaxis Intermedia de Vue.js

Aprender la sintaxis intermedia de Vue.js es clave para ampliar tus habilidades de desarrollo, esta capa del lenguaje proporciona características avanzadas para crear componentes dinámicos e interactivos en tus aplicaciones web y esto te permitirá crear soluciones personalizadas y optimizadas para satisfacer las necesidades de tus proyectos.

En este artículo cubriremos los siguientes temas: Comunicación entre componentes, uso de mixins e extensões, crear aplicaciones en varios idiomas y trabajar con API.

Con eso en mente, pasemos al nivel intermedio y exploremos sus recursos y todo su potencial con más profundidad.

Comunicación entre componentes

En Vue.js, una aplicación se construye componiendo diferentes componentes. Cada componente representa una parte específica de la interfaz de usuario y tiene su propia lógica y comportamiento. Sin embargo, para que la aplicación funcione correctamente, estos diferentes componentes deben comunicarse entre sí.

Hay diferentes formas de realizar la comunicación entre componentes en Vue.js. Algunos de los métodos principales incluyen:

  • Props: Comunicación a través de ‘props’ es una de las formas más simples y comunes de comunicarse entre componentes en Vue.js. Mediante su uso, un componente puede pasar datos a un componente secundario. Estos datos se definen como propiedades en el componente secundario, lo que le permite acceder y utilizar estos datos en su representación.
  • Eventos personalizados: Otra forma común de comunicarse entre componentes en Vue.js es mediante eventos personalizados. En ellos, un componente puede emitir un evento que otros componentes pueden escuchar y responder. Esto permite que los diferentes componentes de la aplicación interactúen entre sí y respondan a los cambios en el estado de la aplicación.
  • Slots: Los slots son otra forma de habilitar la comunicación entre componentes en Vue.js. A través de las ranuras, un componente puede pasar otros componentes como hijos, lo que permite que el componente principal envuelva el contenido del hijo en su propia estructura.
  • Manejo de estado centralizado: Finalmente, la gestión de estado centralizada, lograda a través de la biblioteca Vuex, es una forma más avanzada de permitir la comunicación entre componentes en Vue.js. Con Vuex, puede compartir el estado de la aplicación entre diferentes componentes, permitiéndoles acceder y modificar ese estado de forma centralizada.

Aquí hay un ejemplo simple de cómo usar eventos personalizados para comunicarse entre componentes en Vue.js:


Arriba, en el componente principal, podemos emitir un evento personalizado y pasar datos como parámetro.

Ten en cuenta que estamos emitiendo un evento personalizado ‘counter-incremented’ cuando se hace clic en el botón del componente hijo ‘ChildComponent’. Este evento será capturado por el componente principal ‘ParentComponent’ y la función ‘handleCounterIncrement’ será ejecutada.


Arriba, en el componente secundario, podemos crear un método para emitir el evento personalizado.

Tenga en cuenta que estamos emitiendo un evento personalizado ‘counter-incremented’ cuando se hace clic en el botón en el componente secundario ‘ChildComponent’.

Con esto estamos llevando a cabo la comunicación entre componentes mediante la emisión de eventos personalizados. El componente secundario emite un evento cuando se hace clic en el botón y el componente principal captura ese evento y ejecuta una función para actualizar el valor del contador.

Uso de mixins y extensiones

Un mixin es un objeto que contiene opciones de componentes que se pueden fusionar en otro componente. Esto le permite compartir una lógica común entre diferentes componentes sin tener que duplicar el código. Por ejemplo, podríamos tener un mixin que defina un método para mostrar un diálogo de confirmación y usar ese mixin en varios componentes diferentes que necesiten mostrar un diálogo de confirmación.

Las extensiones son similares a los mixins, pero en lugar de un objeto, es una función que toma el objeto de opciones del componente y devuelve un nuevo objeto de opciones. Esto le permite agregar o modificar opciones de componentes en tiempo de ejecución.

Cuando usamos un mixin o una extensión, se agrega código al componente que lo usa. Esto significa que las opciones de mixin o extensión se fusionan con las opciones de los componentes en el momento de la compilación. Esto permite que el componente tenga acceso a todas las opciones definidas en el mixin o extensión, como métodos, propiedades y enlaces de ciclo de vida.

Una de las ventajas de utilizar mixins y extensiones es que le permiten separar la lógica de los componentes en módulos más pequeños que son más fáciles de entender y mantener. Esto hace que el código sea más organizado y modular, lo que facilita la reutilización de funciones comunes en otros componentes.

A continuación mostraré un ejemplo simple de cómo usar un mixin en un componente Vue.js:


En este ejemplo, creamos un mixin 'myMixin' que define una propiedad 'message' en el objeto de datos que se fusiona en el componente 'mi-componente' usando la opción mixins. Esto permite que el componente tenga acceso a la propiedad 'message' definida en el mixin.

Sin embargo, si intentamos acceder a la propiedad 'message' en la instancia principal de Vue (fuera del componente), no se establecerá, ya que el mixin solo se aplica al componente que hace referencia a él.

Construcción de aplicaciones multilenguaje

Antes de comenzar a crear una aplicación en varios idiomas, es importante configurar el idioma predeterminado de la aplicación. Esto se puede hacer estableciendo la propiedad ‘lang’ en el tag ‘html’ de la página o mediante una opción en la instancia de Vue.

Después de este paso, es necesario agregar soporte para otros idiomas, esto se puede hacer a través de varias bibliotecas de traducción y localización que se pueden usar para agregar soporte para múltiples idiomas en una aplicación Vue.js, siendo las más comunes:

  • vue-i18n: una biblioteca de traducción y localización oficialmente respaldada por Vue.js. Admite varios idiomas y se puede utilizar tanto en aplicaciones de una sola página como de varias páginas.
  • vuex-i18n: una extensión de Vuex que agrega soporte en varios idiomas a su aplicación Vue.js. Proporciona una API simple para definir y cambiar entre múltiples idiomas.
  • vue-multilanguage: Otra biblioteca de traducción y localización para aplicaciones Vue.js. Admite varios idiomas y le permite definir diferentes paquetes de idiomas para diferentes partes de su aplicación.

Después de agregar soporte para múltiples idiomas a su aplicación Vue.js, deberá definir traducciones para cada idioma que desee admitir. Esto generalmente se hace en archivos de idiomas separados que se importan a su aplicación.

Las bibliotecas de traducción y localización mencionadas anteriormente proporcionan API simples para definir traducciones y cambiar entre diferentes idiomas. Por ejemplo, con la biblioteca vue-i18n, puede definir traducciones en un archivo de idioma JavaScript separado y luego usarlas en su aplicación a través de filtros o directivas personalizadas.

A continuación se muestra un ejemplo sencillo de cómo crear una aplicación Vue.js que admita varios idiomas utilizando la biblioteca vue-i18n:


En este ejemplo, estamos definiendo un mensaje de bienvenida en inglés y francés en la variable ‘messages’. Luego inicializamos el objeto i18n desde VueI18n con el idioma predeterminado configurado en inglés y los mensajes definidos en la variable ‘messages’.

Dentro de la plantilla del componente, usamos la sintaxis $t() para mostrar el mensaje de bienvenida que se traducirá automáticamente según el idioma definido por el objeto i18n.

Además, agregamos un método ‘switchLanguage’ para permitir al usuario cambiar el idioma de la aplicación actualizando la propiedad 'locale' del objeto i18n.

Finalmente, para permitir a los usuarios cambiar entre diferentes idiomas en su aplicación Vue.js, deberá proporcionar una forma de hacerlo. Esto se puede hacer a través de un menú desplegable u otro control de la interfaz de usuario, que llama a una función para cambiar entre los idiomas admitidos.

Con las bibliotecas de traducción y localización mencionadas anteriormente, puedes cambiar entre idiomas con solo unas pocas líneas de código. Por ejemplo, con vuex-i18n puedes cambiar entre idiomas llamando a la mutación ‘setLocale()’.

Trabajando con APIs

Trabajar con API es una de las tareas más comunes en el desarrollo web y Vue.js no es diferente. Vue.js ofrece algunas opciones para realizar llamadas a API, que son las bibliotecas de Axios y la API Fetch.

La biblioteca Axios es una de las más populares para realizar solicitudes HTTP en JavaScript. Es fácil de usar, admite promesas y le permite definir interceptores de solicitudes y respuestas. Axios funciona tanto en el navegador como en el servidor, lo cual resulta útil si trabaja con renderizado del lado del servidor.

Fetch API es una API nativa del navegador que también le permite realizar solicitudes HTTP. Es relativamente nuevo y aún no es totalmente compatible con todos los navegadores, pero tiene una API muy simple y fácil de usar.

Para trabajar con API en Vue.js, generalmente se recomienda crear un servicio que encapsule las llamadas HTTP e inyectarlo en los componentes que necesitan consumir estos datos. Esto hace que el código sea más organizado y reutilizable.

A continuación se muestra un ejemplo de código que realiza una solicitud a una API utilizando el método 'fetch()' de JavaScript dentro de un componente Vue.js:


En este ejemplo, tenemos un componente Vue.js que muestra una lista de publicaciones obtenidas de la API "https://jsonplaceholder.typicode.com/posts". El método "fetch()" se utiliza para realizar la solicitud y la respuesta. se convierte en un objeto JSON con el método .json(). Luego, el título de la página y las publicaciones se almacenan en el objeto de datos del componente y se muestran en la página mediante la directiva v-for. Este es un ejemplo simple, pero es posible crear aplicaciones complejas usando API con Vue.js.

¡Con esto concluyo esta guía! Está atento a la próxima guía, hay mucho más que aprender. Es esencial estudiar y practicar con regularidad para convertirse en un desarrollador experto de Vue.js.

Ahora que tienes una descripción detallada de algunos temas intermedios que deben comprenderse, podemos pasar al nivel avanzado en el siguiente artículo. ¿Qué piensas?

Y como desarrollador/a, ¿alguna vez has creado algo usando Vue.js? ¿Has tenido algún contacto previo con los temas de esta guía?