smalljs$molSuche⌘ KDokuPlaygroundVergleichÖkosystemÜberDE
Giper BazaGetting StartedEinführungMentales ModellErste SchritteVon TypeScript zu view.treeProjektstrukturWerkzeugeEssentialsInstallationViewsZustand und ReaktivitätRoutingRenderingTestenDeploymentFehlerbehebungDataDatenabrufDatenschemasGiper BazaMoreSchaufensterVon React, Vue und SvelteKochbuchAdvancedPluginsModul-MetadatenOfflineGhost-AnsichtenAboutFAQTeamReleasesAPI$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 ist ein eigenständiges, optionales Projekt — kein fester Bestandteil von $mol. Seine Autoren beschreiben es als dezentrale, hochverfügbare Datenbank mit konfliktfreier Echtzeit-Synchronisation: ein CRDT-Speicher, der lokal persistiert und ohne zentralen Server zwischen Clients repliziert, mit digitalen Signaturen und Ende-zu-Ende-Verschlüsselung. Für den Bau einer $mol-App brauchen Sie es nie; greifen Sie nur dann darauf zurück, wenn mehrere Clients oder Geräte dieselben Live-Daten teilen müssen.Sie möchten nur, dass Ihre App ohne Netzwerk weiterläuft? Das ist einfaches Offline, und $mol erledigt es mit einem Service Worker — siehe Offline. Giper Baza geht einen Schritt weiter: Daten zwischen Clients synchronisieren, statt die Assets eines einzelnen Clients zwischenzuspeichern.Wenn Sie damit tatsächlich Daten modellieren, sehen Entitäten aus wie gewöhnliche reaktive Eigenschaften, und die Replikation geschieht einfach.Diese Seite stellt die Form der API vor. Giper Baza ist ein großes Thema — betrachten Sie dies als Karte, nicht als das gesamte Gebiet.

Eine Entität definieren

Eine Entität ist ein reines Schema — eine Menge typisierter Felder. Halten Sie Verhalten heraus; erledigen Sie Lesen und Schreiben in Ihren Ansichten.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}Jedes Feld ist ein Atom — eine synchronisierte Zelle mit typisiertem Wert.

Lesen und schreiben

Holen Sie sich den Speicher, erreichen Sie eine Liste von Entitäten und mappen Sie reaktiv über sie: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 }Done()?.val() zu lesen gibt den aktuellen Wert; Done(null)!.val(next) zu schreiben setzt ihn. Jede Ansicht, die das Atom liest, wird neu gerendert, wenn sie — oder ein entfernter Peer — es ändert.

Erstellen und entfernen

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 }
Diese Seite auf GitHub bearbeitenWar das hilfreich?JaNeinZurückDatenschemasWeiterSchaufenster
Auf dieser SeiteEine Entität definierenLesen und schreibenErstellen und entfernenSynchronisation ist automatischWohin als Nächstes?
Type to search the documentation.