حالة ودورة حياة المكونات
سنتحدّث في هذا القسم حول مفهوم حالة ودورة حياة المُكوِّنات في React، بإمكانك أن تجد من هنا مرجعًا مُفصّلًا حول واجهة برمجة التطبيق (API) للمُكوِّنات.
فلنتذكر مثال الساعة من قسم تصيير العناصر في React، تعلّمنا في ذلك القسم فقط طريقة واحدة لتحديث واجهة المستخدم عن طريق استدعاء التابع ReactDOM.render()
لتغيير الناتج:
function tick() {
const element = (
<div>
<h1>أهلًا بالعالم!</h1>
<h2>الساعة الآن {new Date().toLocaleTimeString()}.</h2>
</div>
);
ReactDOM.render(
element,
document.getElementById('root')
);
}
setInterval(tick, 1000);
جرِّب المثال على موقع CodePen.
سنتعلّم في هذا القسم كيف نجعل مُكوِّن الساعة Clock
قابلًا لإعادة الاستخدام حقًّا مع تغليفه ضمن نفسه، حيث يُعيِّن عدّاد الوقت الخاص به ويُحدِّث نفسه في كل ثانية.
بإمكاننا البدء عن طريق تغليف شكل السّاعة:
function Clock(props) {
return (
<div>
<h1>أهلًا بالعالم!</h1>
<h2>الساعة الآن {props.date.toLocaleTimeString()}.</h2>
</div>
);
}
function tick() {
ReactDOM.render(
<Clock date={new Date()} />,
document.getElementById('root')
);
}
setInterval(tick, 1000);
جرِّب المثال على موقع CodePen.
ولكن على الرغم من ذلك يفتقد هذا المُكوِّن لمتطلب أساسي، وهو أنّ تعيين السّاعة لعدّاد الوقت وتحديثها لواجهة المستخدم في كل ثانية ينبغي أن يكون تفصيلًا داخليًّا خاصًّا بالمُكوِّن Clock
.
نريد بشكل مثالي أن نكتب هذه الشيفرة مرة واحدة ونجعل المُكوِّن Clock
يُحدِّث نفسه:
ReactDOM.render(
<Clock />,
document.getElementById('root')
);