smalljs$molПошук⌘ KДокументаціяПісочницяПорівнянняЕкосистемаПро проєктUK
Giper BazaGetting StartedВступМентальна модельПочаток роботиВід TypeScript до view.treeСтруктура проєктуІнструментарійEssentialsВстановленняВидиСтан і реактивністьМаршрутизаціяРендерингТестуванняДеплойРозв'язання проблемDataОтримання данихСхеми данихGiper BazaMoreВітринаЗ React, Vue та SvelteЗбірник рецептівAdvancedПлагіниМетадані модуляОфлайнПодання-привидиAboutЧасті питанняКомандаРелізи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 — це окремий, необов'язковий проєкт, а не вбудована частина $mol. Автори описують його як децентралізовану високодоступну базу даних із безконфліктною синхронізацією в реальному часі: CRDT-сховище, що зберігається локально й реплікується між клієнтами без центрального сервера, з цифровими підписами та наскрізним шифруванням. Для створення застосунку на $mol він ніколи не потрібен; звертайтеся до нього лише тоді, коли кільком клієнтам чи пристроям потрібно ділити ті самі живі дані.Просто хочете, щоб застосунок працював без мережі? Це звичайний офлайн, і $mol забезпечує його через service worker — див. Офлайн. Giper Baza — це наступний крок: синхронізація даних між клієнтами, а не кешування ресурсів одного клієнта.Коли ви таки моделюєте дані з ним, сутності виглядають як звичайні реактивні властивості, а реплікація просто відбувається.Ця сторінка знайомить із формою API. Giper Baza — велика тема; сприймайте це як карту, а не всю територію.

Визначте сутність

Сутність — це чиста схема, набір типізованих полів. Тримайте поведінку осторонь; читання й запис робіть у своїх поданнях.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}Кожне поле — це атом, синхронізована комірка з типізованим значенням.

Читання й запис

Отримайте сховище, дістаньтеся до списку сутностей і реактивно пройдіться по них: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() дає поточне значення; запис Done(null)!.val(next) встановлює його. Будь-яке подання, що читає атом, перемальовується, коли воно — або віддалений вузол — його змінює.

Створення й видалення

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 }
Редагувати цю сторінку на GitHubЦе було корисно?ТакНіНазадСхеми данихДаліВітрина
На цій сторінціВизначте сутністьЧитання й записСтворення й видаленняСинхронізація автоматичнаКуди далі?
Type to search the documentation.