Hooksによる状態管理
`useState`などの基本的なReact Hooksを使って、コンポーネント固有のデータを管理する方法を学びます。
「Hooksによる状態管理」はCoddyKit上の無料Next.js 15 Fullstack Web Appsレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これは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:
- The current state value.
- 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.
よくある質問
「Hooksによる状態管理」レッスンは無料ですか?
はい。「Hooksによる状態管理」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、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時間対応のAIチューターがレッスンを進める中での質問に答えます。
Next.js 15 Fullstack Web Appsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのNext.js 15 Fullstack Web Appsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Hooksによる状態管理」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このNext.js 15 Fullstack Web Appsレッスンでコードを書いて実行できますか?
はい。すべてのNext.js 15 Fullstack Web Appsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。