77 lines
3.7 KiB
Markdown
77 lines
3.7 KiB
Markdown
|
---
|
|||
|
title: Life Cycle Methods Of A Component
|
|||
|
localeTitle: طرق دورة الحياة للمكون
|
|||
|
---
## طرق دورة الحياة للمكون
|
|||
|
|
|||
|
عندما نبدأ العمل مع المكونات ، نحتاج إلى تنفيذ العديد من الإجراءات لتحديث حالة أو تنفيذ بعض الإجراءات عندما يتغير شيء في هذا المكون. في هذا السيناريو ، تأتي طرق دورة حياة أحد المكونات في متناول يدك! لذلك دعونا الغوص في هذه المقالة.
|
|||
|
|
|||
|
بشكل عام ، يمكننا تقسيم أساليب دورة الحياة إلى **3** فئات.
|
|||
|
|
|||
|
1. متزايد
|
|||
|
2. تحديث
|
|||
|
3. غير متزايد
|
|||
|
|
|||
|
بما أن أساليب دورة الحياة تفسيرية ، فأنا سأذكر أسماء الطريقة فقط. لا تتردد في المساهمة في هذه المقالة ، إذا لزم الأمر.
|
|||
|
|
|||
|
## تصاعد:
|
|||
|
|
|||
|
ا. `constructor()`
|
|||
|
|
|||
|
ب. `componentWillMount()`
|
|||
|
|
|||
|
ج. `render()`
|
|||
|
|
|||
|
د. `componentDidMount()`
|
|||
|
|
|||
|
## تحديث:
|
|||
|
|
|||
|
ا. `componentWillRecieveProps()`
|
|||
|
|
|||
|
ب. `shouldComponentUpdate()`
|
|||
|
|
|||
|
ج. `componentWillUpdate()`
|
|||
|
|
|||
|
د. `render()`
|
|||
|
|
|||
|
ه. `componentDidUpdate()`
|
|||
|
|
|||
|
## غير متزايد:
|
|||
|
|
|||
|
ا. `componentWillUnmount()`
|
|||
|
|
|||
|
## بعض الحقائق المثيرة للاهتمام لاحظت:
|
|||
|
|
|||
|
* سيتم استدعاء `constructor` و `componentWillMount` و `componentDidMount` و `componentWillUnmount` مرة واحدة فقط خلال دورة حياة المكون.
|
|||
|
* لن يتم تنفيذ `componentWillUpdate` ، و `componentDidUpdate` إلا إذا كان `shouldComponentUpdate` إرجاع `shouldComponentUpdate` فقط.
|
|||
|
* سيتم استدعاء `componentWillUnmount()` فقط قبل إلغاء تثبيت أي مكون ، ومن ثم يمكن استخدامه لتحرير الذاكرة المستخدمة ، وإغلاق أي اتصالات إلى DB ، إلخ.
|
|||
|
|
|||
|
يمكن تعلم الكثير من الأشياء عن طريق الغوص في الترميز. حتى الحصول على يديك القذرة بواسطة الترميز.
|
|||
|
|
|||
|
ملحوظة:
|
|||
|
|
|||
|
> "سيتم تمكين تحذيرات الإزالة مع إصدار 16.x مستقبلي ، **ولكن** ستستمر دورات العمر للتشغيل **حتى الإصدار 17.** " 1
|
|||
|
>
|
|||
|
> "حتى في الإصدار 17 ، سيظل من الممكن استخدامها ، ولكنها ستكون مستعارة ببادئة" UNSAFE\_ "للإشارة إلى أنها قد تسبب مشاكل. كما أعدنا [نصًا تلقائيًا لإعادة تسميته](https://github.com/reactjs/react-codemod#rename-unsafe-lifecycles) في الشفرة الحالية." 1
|
|||
|
|
|||
|
وبعبارة أخرى ، ستظل أساليب دورة الحياة السابقة هذه متوفرة على النحو التالي:
|
|||
|
|
|||
|
* `UNSAFE_componentWillMount`
|
|||
|
* `UNSAFE_componentWillReceiveProps`
|
|||
|
* `UNSAFE_componentWillUpdate`
|
|||
|
|
|||
|
## طرق دورة الحياة الجديدة
|
|||
|
|
|||
|
سيتم تقديم أساليب دورة الحياة الجديدة في React 17
|
|||
|
|
|||
|
* `getDerivedStateFromProps` بديلاً أكثر أمانًا `componentWillReceiveProps` .
|
|||
|
* سيتم إضافة `getSnapshotBeforeUpdate` لدعم قراءة الخصائص بأمان من التحديثات DOM تتم
|
|||
|
|
|||
|
يمكن تعلم الكثير من الأشياء عن طريق الغوص في الترميز. حتى الحصول على يديك القذرة بواسطة الترميز.
|
|||
|
|
|||
|
### مصادر
|
|||
|
|
|||
|
1. [فون ، برايان. "React v16.3.0: New lifecycles and context API". 29 مارس 2018. تم الوصول إليها: 22 مايو 2018.](https://reactjs.org/blog/2018/03/29/react-v-16-3.html)
|
|||
|
|
|||
|
### مصادر
|
|||
|
|
|||
|
[تحديث على التقديم المتزامن](https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html)
|