Nucleux؛ مدیریت state اتمی برای React
خلاصهٔ کاملتر
Nucleux یه کتابخونهٔ مدیریت state برای React ـه که خودش رو با چند شعار معرفی میکنه: بدون بویلرپلیت، بدون Provider، با بهروزرسانی اتمی و فریمورکاگنوستیک. یعنی میتونی state رو هر جای اپ استفاده کنی بدون اینکه کامپوننتها رو تو یه Provider بپیچی.
مدل کارش کلاسمحوره: یه استور میسازی که از Store ارث میبره و هر تیکه از state رو با this.atom() تعریف میکنی. متدهای تغییر state هم همونجا کنار اتمها میشینن:
import { Store } from 'nucleux';
class CounterStore extends Store {
count = this.atom(0);
increment() {
this.count.value += 1;
}
}تو کامپوننت هم با دو تا هوک کار میکنی: useStore که خودِ استور و متدهاش رو میده، و useValue که مقدار یه اتم رو بهصورت واکنشی میخونه:
import { useStore, useValue } from 'nucleux';
function Counter() {
const store = useStore(CounterStore);
const count = useValue(store.count);
return <button onClick={store.increment}>Count: {count}</button>;
}نکتهٔ کلیدی همون «اتمیبودن»ه: اتمها تیکههای واکنشی state هستن و وقتی مقدار یه اتم عوض میشه، فقط کامپوننتهایی که دقیقاً به همون اتم مشترک شدن دوباره رندر میشن، نه کل درخت. سازنده میگه خبری از Provider و reducer و dispatch نیست.
فراتر از پایه، چند امکان کاربردی هم داره. persistence رو میتونی سطح کل استور یا تکتک اتمها فعال کنی و با persistKey و حتی storage سفارشی (مثل AsyncStorage) ذخیرهش کنی. یه حالت debug داره که تغییرات اتمها رو موقع توسعه ردگیری میکنه، و قابلیت reset که اتمها رو به مقدار اولیه برمیگردونه و در صورت نیاز دادههای ذخیرهشده رو هم پاک میکنه — چه یه اتم خاص، چه کل استور.
نکات کلیدی:
- مدیریت state اتمی برای React، بدون Provider و بدون بویلرپلیت
- استورهای کلاسمحور با this.atom() و متدهای کنارش
- فقط کامپوننت مشترکشده به یه اتم دوباره رندر میشه
- هوکهای useStore (متدها) و useValue (مقدار واکنشی)
- persistence، حالت debug و reset (سطح اتم یا کل استور)؛ فریمورکاگنوستیک




