smalljs$molCerca⌘ KDocumentazionePlaygroundConfrontoEcosistemaInformazioniIT
Giper BazaGetting StartedIntroduzioneModello mentalePer iniziareDa TypeScript a view.treeStruttura del progettoStrumentiEssentialsInstallazioneVisteStato e reattivitàRoutingRenderingTestingDeploymentRisoluzione dei problemiDataRecupero datiSchemi di datiGiper BazaMoreVetrinaDa React, Vue e SvelteRicettarioAdvancedPluginMetadati del moduloOfflineViste fantasmaAboutFAQTeamReleaseAPI$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 è un progetto separato e opzionale — non è parte integrante di $mol. I suoi autori lo descrivono come un database decentralizzato ad alta disponibilità con sincronizzazione in tempo reale senza conflitti: un archivio CRDT che persiste localmente e si replica tra i client senza un server centrale, con firme digitali e cifratura end-to-end. Non ne hai mai bisogno per costruire un'app $mol; ricorrivi solo quando più client o dispositivi devono condividere gli stessi dati dal vivo.Vuoi solo che la tua app continui a funzionare senza rete? Quello è puro offline, e $mol lo gestisce con un service worker — vedi Offline. Giper Baza fa un passo in più: sincronizzare i dati tra i client, non mettere in cache le risorse di un singolo client.Quando modelli davvero i dati con esso, le entità sembrano proprietà reattive ordinarie, e la replica avviene da sola.Questa pagina introduce la forma dell'API. Giper Baza è un argomento vasto — considerala una mappa, non l'intero territorio.

Definire un'entità

Un'entità è uno schema puro — un insieme di campi tipizzati. Tieni fuori il comportamento; fai la lettura e la scrittura nelle tue viste.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}Ogni campo è un atomo — una cella sincronizzata con un valore tipizzato.

Leggere e scrivere

Ottieni l'archivio, raggiungi una lista di entità e mappale in modo reattivo: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 }Leggere Done()?.val() dà il valore corrente; scrivere Done(null)!.val(next) lo imposta. Ogni vista che legge l'atomo si ri-renderizza quando lei — o un peer remoto — lo modifica.

Creare e rimuovere

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 }
Modifica questa pagina su GitHubÈ stato utile?NoPrecedenteSchemi di datiSuccessivoVetrina
In questa paginaDefinire un'entitàLeggere e scrivereCreare e rimuovereLa sincronizzazione è automaticaDove andare adesso?
Type to search the documentation.