web

Aplicación web para tomar notas con JavaScript, Vue.js, Bootstrap y localStorage

Hace algún tiempo creé una aplicación web como un ejercicio para aplicar para un trabajo. Decidí hacerla con Vue.js, Bootstrap y localStorage en conjunto.

Al final resultó en algo como lo de la imagen:

Aplicación de notas con localStorage, JavaScript, Bootstrap y Vue js

Es una simple aplicación de notas que puedes crear, eliminar, editar y listar. También se puede cambiar el color de todas las notas (fue un requisito, no cosa mía, así como el idioma).

Código fuente y demo

El código fuente está en mi GitHub y la demostración en mi página web de apps.

Explicación de la aplicación web

Ahora voy a explicar un poco sobre cómo funciona la aplicación.

Persistencia de datos con localStorage

Para guardar las notas utilicé localStorage, una API de los navegadores sobre la que ya he hablado anteriormente. Codifico y decodifico con JSON. Lo que guardo es:

  1. La nota
  2. Un Id
  3. La fecha y hora de creación de la nota

Recordemos que los objetos de tipo Date no son serializables; por eso es que mejor guardo el timestamp que es una variable numérica.

Al recuperar las notas del almacenamiento en el navegador, las ordeno de acuerdo al timestamp; de esa manera las más recientes (ya sea agregadas o editadas) se muestran al inicio.

Ya escribí un post sobre cómo ordenar arreglos en JavaScript.

Uso de Vue.js

Utilicé Vue.JS para dibujar las notas y ocultar o mostrar formularios; además de cambiar el color. Por ejemplo, cada nota tiene el color de fondo de acuerdo a una variable llamada color.

Esa variable está ligada a un input de tipo color, y también escucho sus cambios. Cuando el color cambia, guardo el color en localStorage para que a la próxima se ponga de ese color; es decir, aunque el usuario refresque el color persiste,

Gracias a la reactividad de Vue.js, al cambiar el input también cambia el color de todas las notas.

Finalmente también utilicé Vue.js para ocultar o mostrar distintos formularios; ya que hay un formulario que se muestra al agregar, y otro al editar, el cual se muestra únicamente cuando el usuario hace click en el botón de Editar.

Bootstrap 4

Para el diseño utilicé el framework CSS Bootstrap 4; no es mi favorito, ya que mi favorito es Bulma CSS, pero igual sé manejarlo.

Me gusta mucho que lo único que hay que hacer es incluir el estilo y definir algunas clases de los componentes. Las notas son mostradas como una columna que ocupa el ancho total, para ser mostradas como un rectángulo.

Todo está dentro de un div con clase container y a su vez las columnas están dentro de un div con la clase row.

Conclusión

Gracias a la combinación de frameworks y código JavaScript con CSS es muy fácil centrarse en la lógica de la aplicación, evitando preocupaciones por el diseño o el dibujo de los datos.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

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/

Entradas recientes

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

3 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

3 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

3 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

3 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

3 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

4 días hace

Esta web usa cookies.