Giper Baza 是一個獨立的、可選的專案——並不是 $mol 的內建組成部分。其作者將它描述為一個具有無衝突即時同步的去中心化高可用資料庫:一個在本地持久化、無需中心伺服器即可在用戶端之間複製的 CRDT 儲存,帶有數位簽章和端到端加密。建構 $mol 應用從不需要它;只有當多個用戶端或裝置必須共用同一份即時資料時才使用它。只是想讓應用在沒有網絡時也能繼續運作?那是純粹的離線,$mol 用一個 service worker 來處理——參見 離線。Giper Baza 更進一步:在用戶端之間同步資料,而不是快取單個用戶端的資源。當你確實用它來建模資料時,實體看起來就像普通的響應式屬性,而複製自然而然地發生。本頁介紹 API 的形態。Giper Baza 是一個大主題——請把這當作一張地圖,而不是完整的疆域。
實體是一個純模式——一組帶型別的欄位。把行為放在外面;在你的視圖裏做讀取和寫入。1namespace ${2export class $my_taskextends$giper_baza_entity.with({3Title:$giper_baza_atom_text,4Done:$giper_baza_atom_bool,5CreatedAt:$giper_baza_atom_time,6}){}7}每個欄位都是一個原子——一個帶型別值的已同步單元。
1@ $mol_action2task_add(title:string){3const task=this.tasks_list().make([[null,$giper_baza_rank_read]])!4task.Title(null)!.val(title)5task.Done(null)!.val(false)6}78@ $mol_action9task_remove(id:string){10this.tasks_list().cut(this.task(id).link())11}在 GitHub 上編輯此頁這有幫助嗎?是否上一頁資料模式下一頁展示本頁內容定義一個實體讀取與寫入建立與刪除同步是自動的接下來去哪裏?Type to search the documentation.