React에서 useEffect 후크는 기능적 구성 요소에서 부작용을 수행하는 데 일반적으로 사용됩니다. API 또는 서버에서 데이터를 가져오는 것은 가장 일반적인 부작용 중 하나이며, useEffect를 사용하면 구성 요소에서 데이터 가져오기를 쉽게 관리할 수 있습니다. 다음은 useEffect를 사용하여 React 기능 구성 요소에서 데이터를 가져오는 방법에 대한 자세한 설명과 예입니다.
useEffect를 사용하여 데이터를 가져오려면 일반적으로 다음 패턴을 사용합니다.
다음은 useEffect 및 useState를 사용하여 API에서 데이터를 가져오는 방법을 보여주는 예입니다.
import React, { useState, useEffect } from 'react'; const DataFetchingComponent = () => { // State variables to store data, loading status, and errors const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); // Using useEffect to fetch data useEffect(() => { // Define the function for fetching data const fetchData = async () => { try { // Start by setting loading state to true setLoading(true); // Make the fetch request const response = await fetch('https://api.example.com/data'); // Check if the response is ok (status code 200-299) if (!response.ok) { throw new Error('Network response was not ok'); } // Parse the JSON data const result = await response.json(); // Update the state with the fetched data setData(result); } catch (error) { // Handle errors and set the error state setError(error.message); } finally { // Set loading to false once the request is complete setLoading(false); } }; // Call the fetchData function fetchData(); }, []); // Empty dependency array means this effect runs once when the component mounts // Conditionally render the UI based on loading, error, and data if (loading) { return <div>Loading...</div>; } if (error) { return <div>Error: {error}</div>; } return ( <div> <h1>Data Fetching Example</h1> <ul> {data.map(item => ( <li key={item.id}>{item.name}</li> ))} </ul> </div> ); }; export default DataFetchingComponent;
상태 변수:
효과 후크 사용:
로드 및 오류 처리:
비동기 기능 사용 중효과:
빈 종속성 배열([]):
오류 처리:
국가 관리:
때때로 구성 요소가 마운트될 때 데이터를 가져오는 것이 아니라 버튼 클릭과 같은 사용자 상호 작용을 기반으로 데이터를 가져오고 싶을 수도 있습니다. 이 경우 이벤트 핸들러에서 상태 변수를 업데이트하여 useEffect를 트리거할 수 있습니다.
import React, { useState, useEffect } from 'react'; const DataFetchingComponent = () => { // State variables to store data, loading status, and errors const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); // Using useEffect to fetch data useEffect(() => { // Define the function for fetching data const fetchData = async () => { try { // Start by setting loading state to true setLoading(true); // Make the fetch request const response = await fetch('https://api.example.com/data'); // Check if the response is ok (status code 200-299) if (!response.ok) { throw new Error('Network response was not ok'); } // Parse the JSON data const result = await response.json(); // Update the state with the fetched data setData(result); } catch (error) { // Handle errors and set the error state setError(error.message); } finally { // Set loading to false once the request is complete setLoading(false); } }; // Call the fetchData function fetchData(); }, []); // Empty dependency array means this effect runs once when the component mounts // Conditionally render the UI based on loading, error, and data if (loading) { return <div>Loading...</div>; } if (error) { return <div>Error: {error}</div>; } return ( <div> <h1>Data Fetching Example</h1> <ul> {data.map(item => ( <li key={item.id}>{item.name}</li> ))} </ul> </div> ); }; export default DataFetchingComponent;
이 예에서는:
React에서 데이터를 가져오기 위해 useEffect를 사용하는 것은 부작용을 관리하는 효율적이고 깔끔한 방법입니다. useState와 결합하면 기능 구성 요소에서 데이터 가져오기, 로드 상태 및 오류 처리를 관리할 수 있습니다. 앱이 좋은 사용자 경험을 제공할 수 있도록 항상 오류와 극단적인 경우를 처리하는 것을 잊지 마세요.
위 내용은 React에서 데이터를 가져오기 위해 useEffect 사용하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!