VueJS

Usar chart.js con Vue.js, Webpack y NPM

Hoy voy a enseñarte a usar chart.js (librería para crear gráficas en la web) con Vue.js cuando se programa en Webpack con NPM.

Te aviso desde ahora que probablemente esta no sea la manera de vue, es decir, lo haremos como lo haríamos sin usar el framework, pero esto me ha funcionado y te funcionará a ti para no tener tantos problemas al integrar Chart.js con Vue.

Nota: primero te invito a familiarizarte con chart.js, ya que aquí solo te enseñaré a usarlo con Vue a través de webpack con npm.

Nota 2: en febrero de 2023 intenté usar este método y si instalas la última versión tal vez te aparezca un error. Para evitarlo, en el siguiente paso en lugar de usar npm install --save chart.js usa npm install --save chart.js@3.2.1, yo pongo la 3.2.1 porque es la última que me ha funcionado, pero me imagino que mientras sea menor a la 4 todo debería funcionar. La guía está en: https://www.chartjs.org/docs/latest/migration/v4-migration.html

Instalando e importando chart.js

Primero instalamos el paquete de chart.js con:

npm install --save chart.js

Ahora en nuestro componente (y así en cualquier otro componente en donde vayamos a usar las gráficas) importamos todo de manera automática con:

See the gist on github.

Canvas para la gráfica con Vue.js

Gráfica con chart.js y Vue.js usando Webpack y NPM – Integración

Después en nuestro template del componente creamos un canvas con un id que debemos recordar para más tarde:

See the gist on github.

Fíjate que yo le he colocado el id de graficaDias. Ahora en el código de JavaScript simplemente creamos la gráfica con new Chart, pasándole el elemento recuperado con querySelector.

See the gist on github.

Gráfica dinámica

En caso de que vayas a cambiar los datos de las gráficas en un evento (clic del botón, cambio del select, etcétera) entonces te recomiendo guardar una referencia a la gráfica para poder reiniciarla más tarde.

Para ello, en el data del componente coloca una variable llamada grafica iniciada en null. Después de eso agrega el siguiente fragmento antes del código que inicia la gráfica:

See the gist on github.

Eso hará que, si la gráfica existe, se destruya como lo indiqué en otro post. Y finalmente cuando inicies la gráfica (con new Chart) asigna el resultado a this.grafica, por ejemplo:

See the gist on github.

Entonces cada que ese fragmento de código se ejecute vas a comprobar si la gráfica existe. Si ya existe simplemente la vas a destruir, permitiendo que puedas volver a montar la gráfica en ese canvas.

Así es como podemos usar las gráficas de Chart.js en Vue.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Compartir
Publicado por
parzibyte

Entradas recientes

Monitorear cola de impresión en Windows

En este artículo te voy a enseñar a monitorear la cola de impresión de una…

2 días hace

Solución: Unable to extract uploader id con youtube-dl

En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…

6 días hace

Enviar foto a Telegram usando cURL y Bot

Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…

6 días hace

cURL y Telegram: enviar mensaje a Bot

En un post previo te enseñé a enviar un mensaje en nombre de un Bot…

6 días hace

Impresora térmica con Telegram usando Bot

En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…

6 días hace

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

2 semanas hace

Esta web usa cookies.