SYS.ONLINE
[ ASK_ME ↗ ]
INDEX / DOC // SPEC
358 words
•
2 minutes

Why Props is Unchangeable in React

Why Props is Unchangeable in React

ليه الـ props في React تبقى unchangeable ?#

محتاجين الأول نفهم إن ال data flow في ريـأكت بتكون Unidirectional Data Flow يعني البيانات بتتنقل في اتجاه واحد من ال parent component لل child وكون الـ props تبقى Immutable دا له أسبابه في ريأكت مش معمول عبثي عشان ال stability وال preformance وال Consistency تعال نوضح مع بعض حاجتين بيتحققوا نتيجة الكلام دا

  • 1.Single Source of Truth

في React، مفهوم Single Source of Truth معناه إن كل البيانات بتكون managed in one central place اللي هو parent component وبيحصلها passed down as immutable props to its child components.

  • 2. Predictability

لما الداتا اللي بيحصلها passed down تكون immutable دا بيأكد إن ال child component ميقدرش يغير أو يتحكم ف الداتا ، ال immutability هنا بتضمن إن ميحصلش أي تصرف أو تغيير عبثي ف دا بيضمنلي إن ميحصلش Render طالما ال props متغيرتش

ف بالتالي دا بيضمنلي إني أmanage ال behaviour بتاع الcomponent وأتحكم ف أل re render ودا بيوصلني ل Efficient Re-rendering بيقدر يعرف إمتى ي (re-render) بكفاءة أكبر لما البيانات ثابتة، وده بيحسن الأداء.

إزاي الـ props بقت Immutable في JavaScript ?#

props are passed as values, not references فبالتالي أي محاولة عشان ت modify ال props

مش هت affect علي الstate of the parent component , ملهاش علاقة ب Object.freeze()

تعال بقي أصدمك شوية#

في JavaScript، مفهوم الـ "immutability" للـ props في React بيتم تحقيقه بشكل أساسي عن طريق (convention) بدلاً من (language constraints)

خليني أوضح النقطة دي بالتفصيل

في React، المفهوم الأساسي هو إن الـ props يجب أن تكون غير قابلة للتغيير (immutable). يعني إنه ممنوع تعدل في الـ props اللي بتستلمها في الـ child component. دا مش بيتم فرضه من خلال JavaScript نفسها، لكن هو جزء من فلسفة React.

القيم البسيطة (Primitive Values): في JavaScript، ازي الأرقام و(strings) بتتبعت كقيم (by value). يعني لما تعدي رقم أو نص كـ prop، بيتم نسخ القيمة، وبالتالي مش ممكن تغييرها يؤثر على الأصل في الـ parent component.

ال(Objects) وال(Arrays): بتتبعت كمراجع (by reference). يعني لما تعديهم ك prop، الـ child component بيستلم (reference) لنفس الObjects في الذاكرة. وده يعني إنه ممكن يغير في محتواه. يعني من الأخر الـ props في React بتعتبر immutable بناءً على convention بنلتزم بيه كـ مطورين مش constrain من اللغة .

Join our whatsapp group here
My Channel here

TERMINAL.COLOPHON // CORE v2.5
LAST.DISPATCH: 2026.09.19
guest@ag-coding:~ (interactive-zsh)
LIVE CLI
RUN //
01 // ISSUES ●
53
Published Articles
02 // CORPUS ≈ 6.7H
80.8K
Total Words Written
03 // SECTORS #
2/39
Categories & Tags
04 // UPTIME 99.9%
ONLINE
Static Edge Node
QUANTUM TELEPORTER // ROULETTE 1-CLICK JUMP
TARGET DESTINATION:
TELEPORT NOW ↗
© 2026 Abdoelaziz Gamal // ALL RIGHTS RESERVED.
30.0444° N, 31.2357° E ■ DESIGNED & ENGINEERED IN CAIRO
OPERATOR // RADAR.HUD
SCROLL.PROGRESS
00% LIVE
Abdoelaziz Gamal
LIVE
// CHIEF ARCHITECT
Abdoelaziz Gamal
REACT.JS NEXT.JS SYS.ARCH
root@ag-coding:~# cat dossier.log ● UTF-8

Full-stack engineer from Mansoura. 5+ years shipping TypeScript / Next.js products — dashboards, multi-tenant apps, CRM, LMS, e-commerce. Behind AG Coding.