smalljs$molPesquisar⌘ KDocsPlaygroundCompararEcossistemaSobrePT
Giper BazaGetting StartedIntroduçãoModelo mentalPrimeiros passosDe TypeScript para view.treeEstrutura do projetoFerramentasEssentialsInstalaçãoViewsEstado e reatividadeRoteamentoRenderizaçãoTestesDeploySolução de problemasDataBusca de dadosEsquemas de dadosGiper BazaMoreVitrineDe React, Vue e SvelteLivro de receitasAdvancedPluginsMetadados de móduloOfflineVistas fantasmaAboutFAQEquipeLançamentosAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

Giper Baza

Giper Baza é um projeto separado e opcional — não faz parte integrante do $mol. Seus autores o descrevem como um banco de dados descentralizado e de alta disponibilidade com sincronização em tempo real sem conflitos: um armazenamento CRDT que persiste localmente e replica entre clientes sem servidor central, com assinaturas digitais e criptografia de ponta a ponta. Você nunca precisa dele para construir um app $mol; recorra a ele apenas quando vários clientes ou dispositivos precisarem compartilhar os mesmos dados ao vivo.Só quer que seu app continue funcionando sem rede? Isso é offline puro, e o $mol cuida disso com um service worker — veja Offline. Giper Baza vai um passo além: sincronizar dados entre clientes, não armazenar em cache os recursos de um único cliente.Quando você de fato modela dados com ele, as entidades parecem propriedades reativas comuns, e a replicação simplesmente acontece.Esta página introduz o formato da API. Giper Baza é um tópico extenso — trate isto como um mapa, não o território completo.

Definir uma entidade

Uma entidade é um esquema puro — um conjunto de campos tipados. Mantenha o comportamento de fora; faça a leitura e a escrita nas suas vistas.1namespace $ {2 export class $my_task extends $giper_baza_entity.with( {3 Title: $giper_baza_atom_text,4 Done: $giper_baza_atom_bool,5 CreatedAt: $giper_baza_atom_time,6 } ) {}7}Cada campo é um átomo — uma célula sincronizada com um valor tipado.

Ler e escrever

Obtenha o armazenamento, alcance uma lista de entidades e percorra-as de forma reativa:1 @ $mol_mem2 tasks() {3 return this.tasks_list().remote_list()4 }5 6 @ $mol_mem_key7 task_done( id: string, next?: boolean ) {8 const task = this.task( id )9 if( next !== undefined ) task.Done( null )!.val( next )10 return task.Done()?.val() ?? false11 }Ler Done()?.val() dá o valor atual; escrever Done(null)!.val(next) o define. Qualquer vista que lê o átomo renderiza de novo quando ela — ou um par remoto — o altera.

Criar e remover

1 @ $mol_action2 task_add( title: string ) {3 const task = this.tasks_list().make( [ [ null, $giper_baza_rank_read ] ] )!4 task.Title( null )!.val( title )5 task.Done( null )!.val( false )6 }7 8 @ $mol_action9 task_remove( id: string ) {10 this.tasks_list().cut( this.task( id ).link() )11 }
Editar esta página no GitHubIsto foi útil?SimNãoAnteriorEsquemas de dadosPróximoVitrine
Nesta páginaDefinir uma entidadeLer e escreverCriar e removerA sincronização é automáticaPara onde ir agora?
Type to search the documentation.