smalljs$molجستجو⌘ Kمستنداتزمین بازیمقایسهاکوسیستمدربارهFA
وضعیت و واکنش‌گراییGetting 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

وضعیت و واکنش‌گرایی

وضعیت در $mol مانند یک صفحه‌گسترده رفتار می‌کند: شما اعلام می‌کنید که یک مقدار چگونه محاسبه می‌شود و هرچه به آن وابسته است خودبه‌خود به‌روز می‌شود. نه استوری، نه dispatch، نه هوکِ افکت — گراف وابستگی‌ها ردیابی می‌کند که چه چیزی باید بازمحاسبه شود.

ویژگی‌های واکنش‌گرا

متدی که با @ $mol_mem تزئین شده یک سلولِ واکنش‌گرای کش‌شده است. یک‌بار اجرا می‌شود، نتیجه‌اش را به‌خاطر می‌سپارد و فقط زمانی بازمحاسبه می‌کند که چیزی که خوانده تغییر کرده باشد.1namespace $.$$ {2 export class $my_counter extends $.$my_counter {3 @ $mol_mem count() { return 0 }4 5 @ $mol_mem doubled() {6 return this.count() * 27 }8 }9}doubled مقدار count را می‌خواند، پس به‌طور خودکار مشترکِ count می‌شود. count را تغییر دهید و هر نمایی که doubled را نشان می‌دهد تازه می‌شود — چیزی برای اشتراک دستی وجود ندارد.

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

یک ویژگی هم‌زمان getter و setter است: بدون آرگومان صدایش بزنید تا بخوانید، با یک آرگومان تا بنویسید.1@ $mol_action2increment() {3 this.count( this.count() + 1 )4}

کنش‌ها در برابر محاسبه‌ها

همین یک تمایز کدِ واکنش‌گرا را قابل‌پیش‌بینی نگه می‌دارد:@ $mol_mem یک محاسبهٔ خالص است — فقط سلول‌های دیگر را می‌خواند و یک مقدار برمی‌گرداند.@ $mol_action یک افکت است — نوشتن در وضعیت، فراخوانی‌های شبکه و تایمرها به اینجا تعلق دارند.نوشتن در یک سلول از درونِ یک @ $mol_mem یک حلقهٔ بازخورد ایجاد می‌کند (نوشتن یک وابستگی را بی‌اعتبار می‌کند، که بازمحاسبه می‌شود، که دوباره می‌نویسد). $mol این را به‌عنوان اشتراک حلقوی گزارش می‌دهد. راه‌حل همیشه یکی است: اثرات جانبی را در کنش‌ها نگه دارید و محاسبه‌ها را خالص نگه دارید.در @ $mol_mem می‌توانیداما نههندلرهای دکمه به‌صورت @ $mol_mem روی کلاس پایه تولید می‌شوند؛ آن‌ها را با @ $mol_action بازنویسی کنید تا بتوانند با ایمنی بنویسند:1@ $mol_action2submit() {3 this.saved( true )4}

وضعیت مشتق‌شده ترکیب می‌شود

چون وابستگی‌ها خودکار ردیابی می‌شوند، مقادیر مشتق‌شده بدون هیچ سیم‌کشی‌ای زنجیر می‌شوند. هر یک قبلی را می‌خواند؛ تغییری در ریشه دقیقاً تا هرجا که لازم است موج می‌زند:1@ $mol_mem full_name() {2 return `${ this.first() } ${ this.last() }`.trim()3}4 5@ $mol_mem greeting() {6 return this.full_name() ? `Hello, ${ this.full_name() }!` : 'Hello!'7}
ویرایش این صفحه در GitHubآیا این مفید بود؟بلهخیرقبلینماهابعدیمسیریابی
در این صفحهویژگی‌های واکنش‌گراخواندن و نوشتنکنش‌ها در برابر محاسبه‌هاوضعیت مشتق‌شده ترکیب می‌شودوضعیت کلیددارناهم‌زمان فقط یک مقدار استوضعیت گذرا میان رویدادهابعدی
Type to search the documentation.