smalljs$molSzukaj⌘ KDokumentacjaPlaygroundPorównanieEkosystemO projekciePL
Giper BazaGetting StartedWprowadzenieModel mentalnyPierwsze krokiZ TypeScriptu do view.treeStruktura projektuNarzędziaEssentialsInstalacjaWidokiStan i reaktywnośćRoutingRenderowanieTestowanieWdrożenieRozwiązywanie problemówDataPobieranie danychSchematy danychGiper BazaMorePrezentacjaZ React, Vue i SvelteZbiór przepisówAdvancedWtyczkiMetadane modułuOfflineWidoki-duchyAboutFAQZespółWydaniaAPI$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 to osobny, opcjonalny projekt — nie jest wbudowaną częścią $mol. Jego autorzy opisują go jako zdecentralizowaną, wysokodostępną bazę danych z bezkonfliktową synchronizacją w czasie rzeczywistym: magazyn CRDT, który utrwala się lokalnie i replikuje między klientami bez centralnego serwera, z podpisami cyfrowymi i szyfrowaniem end-to-end. Do zbudowania aplikacji $mol nigdy go nie potrzebujesz; sięgaj po niego tylko wtedy, gdy wielu klientów lub urządzeń musi współdzielić te same dane na żywo.Chcesz tylko, aby aplikacja działała dalej bez sieci? To zwykły tryb offline, a $mol obsługuje go za pomocą service workera — zobacz Offline. Giper Baza idzie o krok dalej: synchronizuje dane między klientami, zamiast buforować zasoby jednego klienta.Gdy faktycznie modelujesz nim dane, encje wyglądają jak zwykłe właściwości reaktywne, a replikacja po prostu się dzieje.Ta strona przedstawia kształt API. Giper Baza to obszerny temat — potraktuj to jako mapę, a nie całe terytorium.

Zdefiniuj encję

Encja to czysty schemat — zestaw typowanych pól. Trzymaj zachowanie z dala; odczyt i zapis rób w swoich widokach.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żde pole to atom — zsynchronizowana komórka z typowaną wartością.

Odczyt i zapis

Pobierz magazyn, sięgnij do listy encji i mapuj po nich reaktywnie: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 }Odczyt Done()?.val() daje bieżącą wartość; zapis Done(null)!.val(next) ją ustawia. Każdy widok czytający atom renderuje się ponownie, gdy on — lub zdalny peer — go zmieni.

Tworzenie i usuwanie

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 }
Edytuj tę stronę na GitHubieCzy to było pomocne?TakNiePoprzedniaSchematy danychNastępnaPrezentacja
Na tej stronieZdefiniuj encjęOdczyt i zapisTworzenie i usuwanieSynchronizacja jest automatycznaDokąd dalej?
Type to search the documentation.