Es una biblioteca de gestión de estado que adopta un enfoque minimalista y directo para la programación reactiva. A diferencia de otras soluciones más complejas, Dexie.js se centra en la simplicidad y la facilidad de uso, lo que la convierte en una opción atractiva para desarrolladores que buscan una forma eficiente de manejar la información de sus aplicaciones.
1. Instalar la librería
npm install dexie --save
2. Creamos un archivo app-db.ts
import Dexie, { Table } from 'dexie';
export class AppDbHelper extends Dexie {
}
3. Creamos nuestro modelo/tabla, aca dejo un ejemplo:
export class LPAccount {
id?: number;
title!: string;
current_value?: number;
status!: number;
type!: number;
created_at?: string;
}
4. Sumamos nuestro modelo a la clase de la DB, tambien hay que configurar las claves primarias e índices dentro de la función de “stores”.
constructor() {
super('lifepurse-db');
this.version(1).stores({
accounts: 'id'
});
}
5. Crear un servicio e inicializamos la clase de la DB:
import { Injectable, isDevMode } from '@angular/core';
import { AppDbHelper } from '../helpers/app-db.helper';
@Injectable({
providedIn: 'root'
})
export class DatabaseService {
database?: AppDbHelper;
constructor() { }
init() {
this.database = new AppDbHelper();
}
}
6. Ahora ya puedes crear elementos:
this.databaseService.database.accounts.add(new LPAccount());
7. Y para obtener los datos desde la base de datos:
import { liveQuery } from 'dexie';
liveQuery(() => this.databaseService.database.accounts.toArray())
.subscribe(data => this.items = data);
Dexie.js ofrece una forma sencilla y poderosa de gestionar el estado en aplicaciones Angular. Su enfoque minimalista, combinado con su rendimiento y facilidad de integración, la convierte en una herramienta valiosa para cualquier desarrollador que busque mejorar la eficiencia y la capacidad de respuesta de sus aplicaciones. ¡Prueba Dexie.js en tu próximo proyecto Angular y descubre cómo puede simplificar tu flujo de trabajo de desarrollo!