Cana — Guia de uso
Hub focado para @jumentix/cana.
O Cana é a camada de persistência no navegador para aplicações Jumentix. Use quando o frontend precisa de dados offline duráveis, transações IndexedDB explícitas, eventos de mudança, isolamento por worker e uma ponte clara para React Context, Redux, Pinia ou outra store de UI.
Esta página é intencionalmente curta. O guia completo foi dividido em páginas menores para cada assunto mostrar código completo sem virar uma parede única.
Escolha o próximo passo
- Primeiros passos — instale o Cana, crie as tabelas
categoriesetasks, grave dados iniciais e leia tudo de volta. - Schema e chaves — mudanças versionadas de schema, chaves inbound, chaves geradas, chaves outbound e validação.
- Leitura, escrita e operações em lote —
get,add,put,update,delete,clear,bulkAdd,bulkPute tratamento previsível de falhas. - Queries e planos — índices,
equals,limit,offset,count,explain()e complexidade. - Transações e eventos de mudança — escritas
atômicas,
CanaChangeEvent, janelas de replay e sincronização com stores de UI. - Hooks e erros —
beforeWrite,afterCommit, guards deCanaErrore ramos comuns de recuperação. - Storage e recuperação de crash — avaliação de storage,
avaliação de durabilidade, export/import e
resolveWrite(). - Workers e testes —
createWorkerHost(),createRouter(),createWorkerClient()e estratégia de testes. - Referência de API — mapa compacto de métodos e glossário.
O exemplo contínuo
Todas as páginas usam o mesmo sistema simples de tarefas. Existem duas stores:
| Store | Propósito | Campos principais |
|---|---|---|
categories | Agrupa tarefas por área. | id, name, color, createdAt, updatedAt |
tasks | Registros duráveis de tarefas. | id, title, categoryId, completed, priority, createdAt, updatedAt |
Os exemplos mantêm o estado de framework fora do Cana. O Cana controla persistência e eventos commitados; React Context, Redux e Pinia controlam o estado renderizado.
Política de código completo
Os blocos de código destas páginas são escritos como unidades de implementação copiáveis. Quando um snippet pode executar no site, a página inclui um playground com Run. Quando um snippet precisa de uma fronteira real de aplicação, como um arquivo dedicado de Worker, a página mostra todos os arquivos envolvidos em vez de esconder partes faltantes atrás de placeholders.
Tutoriais por framework
Construa o mesmo app de tarefas categorizadas com state management:
Integrações de pacote
Use os pequenos pacotes de integração quando quiser que eventos do Cana atualizem o estado do framework diretamente:
bun add @jumentix/cana @jumentix/cana-react
bun add @jumentix/cana @jumentix/cana-vue