smalljs$molجستجو⌘ Kمستنداتزمین بازیمقایسهاکوسیستمدربارهFA
Giper BazaGetting Startedمعرفیمدل ذهنیشروع به کاراز تایپ‌اسکریپت به 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}هر فیلد یک اتم است — یک سلولِ همگام‌شده با یک مقدارِ نوع‌دار.

خواندن و نوشتن

انبار را بگیرید، به یک فهرست از موجودیت‌ها برسید و به‌صورت واکنش‌گرا روی آن‌ها map کنید: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.