Next.js 15 Fullstack Web Apps · درس

إدارة الحالة باستخدام Hooks

تعلّم إدارة البيانات الخاصة بالمكونات باستخدام `useState` وغيرها من React Hooks الأساسية.

الدرس 2 من 411 خطوة

إدارة الحالة باستخدام Hooks درس مجاني في Next.js 15 Fullstack Web Apps على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Next.js 15 Fullstack Web Apps، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Next.js 15 Fullstack Web Apps 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Intro to Component State

In React, state refers to data that a component manages internally and that can change over time, affecting how the component renders.

Think of it as a component's memory. When state changes, React efficiently updates only the necessary parts of your user interface.

Why State Matters

State is crucial for building interactive and dynamic web applications. Without it, your UI would be static and unable to respond to user actions.

  • User Input: Storing text from an input field.
  • Toggles: Managing whether a menu is open or closed.
  • Counters: Keeping track of a numerical value.

It makes your components 'alive'!

Meet the `useState` Hook

To add state to functional components in React, we use a special function called a Hook. The primary hook for managing local component state is useState.

Hooks are functions that let you 'hook into' React features like state and lifecycle methods from functional components.

Declaring State with `useState`

The useState hook returns an array with two items:

  1. The current state value.
  2. A function to update that state value.

We use array destructuring to get these values:

import React, { useState } from 'react';

function MyComponent() {
  // Declares a state variable 'count' initialized to 0
  // 'setCount' is the function to update 'count'
  const [count, setCount] = useState(0);

  // Declares a state variable 'name' initialized to an empty string
  const [name, setName] = useState('');

  return (
    <div>
      <p>Count: {count}</p>
      <p>Name: {name}</p>
    </div>
  );
}

Updating State: Simple Counter

To change the state, you must call the setter function (e.g., setCount). When you call this function, React will re-render your component with the new state value.

Try clicking the button to see the count change!

import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  const increment = () => {
    setCount(count + 1); // Update the state
  };

  return (
    <div>
      <p>Current Count: {count}</p>
      <button onClick={increment}>Increment</button>
    </div>
  );
}

State Updates are Asynchronous

It's important to know that state updates in React are often asynchronous. This means React might batch multiple state updates for performance.

Because of this, if your new state depends on the previous state, it's safer to pass a function to the setter.

Functional State Updates

When updating state based on its previous value, provide a function to the setter. This function receives the previous state as an argument.

This pattern ensures you're always working with the most up-to-date state, preventing subtle bugs.

import React, { useState } from 'react';

function SafeCounter() {
  const [count, setCount] = useState(0);

  const incrementByTwo = () => {
    // This ensures we always increment based on the latest count
    setCount(prevCount => prevCount + 1);
    setCount(prevCount => prevCount + 1);
  };

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={incrementByTwo}>Add 2</button>
    </div>
  );
}

Managing User Input

useState is perfect for controlling form input elements. When an input's value is managed by React state, it's called a controlled component.

This gives you full control over the input's value and allows for easy validation or transformation.

Controlled Input Example

Here's how you can use useState to manage the value of a text input field. The onChange event handler updates the state every time the user types.

Type something into the box!

import React, { useState } from 'react';

function InputField() {
  const [text, setText] = useState('');

  const handleChange = (event) => {
    setText(event.target.value); // Update state with input's value
  };

  return (
    <div>
      <input type="text" value={text} onChange={handleChange} />
      <p>You typed: {text}</p>
    </div>
  );
}

Quick Check: `useState`

Which of the following statements about the useState hook in React are TRUE?

Recap: State with Hooks

You've now learned the core of state management in React using the useState hook!

  • What is State? Data that changes and affects component rendering.
  • useState: The primary hook to add state to functional components.
  • Syntax: const [value, setValue] = useState(initial);
  • Updating: Always use the setter function. For updates based on previous state, pass a function to the setter.
  • Use Cases: Counters, toggles, managing user input, and much more!

Mastering useState is a fundamental step in building interactive React apps.

البدء مجانًا

تعلم TypeScript مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
12
الدروس
48

الأسئلة الشائعة

هل درس «إدارة الحالة باستخدام Hooks» مجاني؟

نعم — نص درس «إدارة الحالة باستخدام Hooks» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Next.js 15 Fullstack Web Apps، انتقل إلى CoddyKit PRO. تتضمن دورة Next.js 15 Fullstack Web Apps 4 دروس في المجموع.

ماذا ستتعلم في «إدارة الحالة باستخدام Hooks»؟

تعلّم إدارة البيانات الخاصة بالمكونات باستخدام `useState` وغيرها من React Hooks الأساسية. تتمرن على Next.js 15 Fullstack Web Apps مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Next.js 15 Fullstack Web Apps؟

لا تُشترط خبرة سابقة. Next.js 15 Fullstack Web Apps على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «إدارة الحالة باستخدام Hooks»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Next.js 15 Fullstack Web Apps هذا؟

نعم. كل درس في Next.js 15 Fullstack Web Apps يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مكونات React وJSX
  2. إدارة الحالة باستخدام Hooks
  3. الخصائص والتواصل بين المكونات
  4. تصيير القوائم والمفاتيح وواجهة المستخدم الشرطية
← العودة إلى Next.js 15 Fullstack Web Apps