smalljs$molRechercher⌘ KDocsPlaygroundComparerÉcosystèmeÀ proposFR
Giper BazaGetting StartedIntroductionModèle mentalDémarrageDe TypeScript à view.treeStructure d'un projetOutillageEssentialsInstallationVuesÉtat et réactivitéRoutageRenduTestsDéploiementDépannageDataRécupération de donnéesSchémas de donnéesGiper BazaMoreVitrineDe React, Vue et SvelteRecettesAdvancedPluginsMétadonnées de moduleHors-ligneVues fantômesAboutFAQÉquipeVersionsAPI$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 est un projet distinct et optionnel — il ne fait pas partie intégrante de $mol. Ses auteurs le décrivent comme une base de données décentralisée à haute disponibilité avec synchronisation temps réel sans conflit : un magasin CRDT qui persiste localement et se réplique entre clients sans serveur central, avec signatures numériques et chiffrement de bout en bout. Vous n'en avez jamais besoin pour construire une application $mol ; n'y recourez que lorsque plusieurs clients ou appareils doivent partager les mêmes données en direct.Vous voulez simplement que votre application continue de fonctionner sans réseau ? C'est du pur hors-ligne, et $mol s'en charge avec un service worker — voir Hors-ligne. Giper Baza va un cran plus loin : synchroniser les données entre clients, et non mettre en cache les ressources d'un seul client.Lorsque vous modélisez effectivement des données avec, les entités ressemblent à des propriétés réactives ordinaires, et la réplication se produit toute seule.Cette page présente la forme de l'API. Giper Baza est un vaste sujet — considérez ceci comme une carte, pas le territoire complet.

Définir une entité

Une entité est un schéma pur — un ensemble de champs typés. Gardez le comportement à l'écart ; faites la lecture et l'écriture dans vos vues.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}Chaque champ est un atome — une cellule synchronisée avec une valeur typée.

Lire et écrire

Obtenez le magasin, atteignez une liste d'entités et parcourez-les de manière réactive :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 }Lire Done()?.val() donne la valeur actuelle ; écrire Done(null)!.val(next) la définit. Toute vue lisant l'atome se re-rend quand elle — ou un pair distant — la modifie.

Créer et supprimer

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 }
Modifier cette page sur GitHubÉtait-ce utile ?OuiNonPrécédentSchémas de donnéesSuivantVitrine
Sur cette pageDéfinir une entitéLire et écrireCréer et supprimerLa synchronisation est automatiqueOù aller ensuite ?
Type to search the documentation.