عداد النقرات
جزء من قسم الأساسيات في رحلة React على Coddy. الدرس 23 من 42.
تحتاج الحالة (State) إلى محفز، وعادة ما يكون ذلك حدثًا (event). قم بربط دالة بـ button باستخدام onClick وقم بتغيير الحالة بداخلها:
import { useState } from 'react';
export default function App() {
const [count, setCount] = useState(0);
return (
<div>
<button onClick={() => setCount(count + 1)}>+1</button>
<p>{count}</p>
</div>
);
}تتبع نقرة واحدة حول الحلقة: نقر ← setCount(count + 1) ← يعيد React العرض (re-renders) ← تظهر الفقرة العدد الجديد. لاحظ الدالة السهمية (arrow function): onClick={() => setCount(count + 1)} تمرر دالة ليتم استدعاؤها لاحقًا. أما كتابة onClick={setCount(count + 1)} فستؤدي إلى استدعائها فورًا أثناء العرض، وهو خطأ برمجي شائع.
التحدي
سهلقم ببناء عدّاد كلاسيكي.
- أضف حالة (state):
countتبدأ من0(الاستيراد جاهز). - اعرض العدّ الحالي داخل عنصر الـ span الذي يمتلك
id="count". - اجعل زر
+1يزيد العدّ بمقدار 1 عند كل نقرة.
جرّب بنفسك
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<div id="root"></div>
<script type="module" src="main.jsx"></script>
</body>
</html>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2تعبيرات JSX
الأقواس المعقوفةالعمليات الرياضية داخل الأقواسالأقواس في السماتاستدعاء الدوال في JSXملخص: تعبيرات JSX5الحالة والأحداث
ما هي الحالة (State)؟عداد النقراتالعد بخطواتالتبديل باستخدام الحالةحالة مستقلةملخص: الحالة والأحداث8مشروع: بطاقة الملف الشخصي
الخطوة 1: هيكل البطاقةالخطوة 2: بطاقة مع Propsالخطوة 3: زر الإعجابالخطوة 4: تبديل المتابعة