TGViewer
Perfino🌱 Perfino🌱 @perfino_com · 65 subscribers
Post #109 56
{ریکت}:

همیشه میگن " state  رو mutate  نکن "

خب این یعنی چی؟

1. اول معنی خود کلمه Mutation

یعنی تغییر دادن چیزی در جای خودش، بدون ساختن نسخه جدید

2. چه چیزهایی mutate می‌کنند؟

Mutation روی چیزهایی معنا دارد که قابل تغییر هستند. در جاوااسکریپت این‌ها را mutable می‌گوییم:

· آرایه‌ها: push, pop, shift, unshift, splice, sort, reverse همه mutate می‌کنند.

· آبجکت‌ها: obj.key = value, delete obj.key mutate می‌کنند.

· Map و Set: متدهایشان mutate می‌کنند.

در مقابل، این‌ها mutate نمی‌کنند (immutable operation):

· رشته‌ها (string): همیشه immutable هستند.

· اعداد و boolean: immutable هستند.

· متدهای غیرمخرب آرایه: map, filter, slice, concat, flatMap — این‌ها آرایه جدید می‌سازند.

پس mutate کردن یعنی استفاده از متدها یا عملیاتی که شیء اصلی را در جای خودش تغییر می‌دهند.


3.چرا ریکت به این سخت‌گیری نیاز داره؟

قابلیت‌های پیشرفته ری‌اکت:

چیزهایی مثل React.memo، useMemo، useCallback، زمان‌بندی هوشمند رندر (Concurrent)، همه به این وابسته‌اند که stateها immutable باشند. اگر mutate کنی، این ابزارها فریب می‌خورند.

مثالش پایینه 👇🏻


@perfino_com
More from @perfino_com
  1. Oct 5, 2026حالا چرا در ری‌اکت می‌گوییم state را mutate نکن؟ برگرد به مفهوم snapshot که در پیام قبلی گ…
  2. Oct 4, 2026#ایده_تمرین_ریکت @perfino_com
  3. Oct 3, 2026اگه داری ریکت میخونی حتما به این مبحث دقت کن و مفهومش دقیق یادبگیر (درسته متنش طولانیه ولی…
  4. Oct 3, 2026مفهوم Snapshot در ری‌اکت این یکی از مهم‌ترین مفاهیمی است که اگر درست بفهمی، نصف باگ‌های عج…
  5. Oct 3, 2026یک تمرین چک لیست متفاوت با ریکت #ایده_تمرین @perfino_com
  6. Oct 2, 2026Post #104
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →