smalljs$molHledat⌘ KDokumentacePlaygroundPorovnáníEkosystémO projektuCS
Giper BazaGetting StartedÚvodMyšlenkový modelZačínámeZ TypeScriptu do view.treeStruktura projektuNástrojeEssentialsInstalacePohledyStav a reaktivitaSměrováníVykreslováníTestováníNasazeníŘešení problémůDataNačítání datDatová schémataGiper BazaMoreVýkladní skříňZ React, Vue a SvelteKuchařkaAdvancedPluginyMetadata moduluOfflineGhost pohledyAboutČasté dotazyTýmVydáníAPI$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 je samostatný, volitelný projekt — není vestavěnou součástí $mol. Jeho autoři jej popisují jako decentralizovanou, vysoce dostupnou databázi s bezkonfliktní synchronizací v reálném čase: CRDT úložiště, které přetrvává lokálně a replikuje se mezi klienty bez centrálního serveru, s digitálními podpisy a end-to-end šifrováním. K sestavení aplikace v $mol jej nikdy nepotřebujete; sáhněte po něm jen tehdy, když více klientů nebo zařízení musí sdílet stejná živá data.Chcete jen, aby vaše aplikace fungovala i bez sítě? To je prostý offline a $mol jej zajišťuje pomocí service workeru — viz Offline. Giper Baza jde o krok dál: synchronizuje data mezi klienty, místo aby ukládala do mezipaměti prostředky jednoho klienta.Když s ním data skutečně modelujete, entity vypadají jako běžné reaktivní vlastnosti a replikace se prostě děje.Tato stránka představuje podobu API. Giper Baza je rozsáhlé téma — berte to jako mapu, ne celé území.

Definujte entitu

Entita je čisté schéma — sada typovaných polí. Chování držte stranou; čtení a zápis dělejte ve svých pohledech.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}Každé pole je atom — synchronizovaná buňka s typovanou hodnotou.

Čtení a zápis

Získejte úložiště, dosáhněte na seznam entit a reaktivně je zmapujte: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 }Čtení Done()?.val() dá aktuální hodnotu; zápis Done(null)!.val(next) ji nastaví. Každý pohled, který atom čte, se překreslí, když jej — nebo vzdálený peer — změní.

Vytváření a odebírání

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 }
Upravit tuto stránku na GitHubuBylo to užitečné?AnoNePředchozíDatová schémataDalšíVýkladní skříň
Na této stránceDefinujte entituČtení a zápisVytváření a odebíráníSynchronizace je automatickáKam dál?
Type to search the documentation.