smalljs$molПоиск⌘ KДокументацияПесочницаСравнениеЭкосистемаО проектеRU
Гипер БазаGetting StartedВведениеМентальная модельБыстрый стартОт TypeScript к view.treeСтруктура проектаИнструментарийEssentialsУстановкаВьюСостояние и реактивностьРоутингРендерингТестированиеДеплойРешение проблемDataЗагрузка данныхСхемы данныхГипер БазаMoreВитринаИз React, Vue и SvelteСборник рецептовAdvancedПлагиныМетаданные модуляОфлайнGhost-вью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

Гипер База

Гипер База — это отдельный, необязательный проект, а не встроенная часть $mol. Авторы описывают его как децентрализованную высокодоступную базу данных с бесконфликтной синхронизацией в реальном времени: CRDT-хранилище, которое сохраняется локально и реплицируется между клиентами без центрального сервера, с цифровыми подписями и сквозным шифрованием. Для приложения на $mol он никогда не нужен; берите его только тогда, когда нескольким клиентам или устройствам нужно делить одни и те же живые данные.Просто хотите, чтобы приложение продолжало работать без сети? Это обычный офлайн, и $mol обеспечивает его через service worker — см. Офлайн. Гипер База — следующий шаг: синхронизация данных между клиентами, а не кэширование ресурсов одного клиента.Когда вы действительно моделируете с ней данные, сущности выглядят как обычные реактивные свойства, а репликация просто происходит.Эта страница знакомит с формой API. Гипер База — большая тема; считайте это картой, а не всей территорией.

Определение сущности

Сущность — это чистая схема, набор типизированных полей. Держите поведение вне неё; чтение и запись делайте во вью.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.