React useEffectの使い方
import React, { useState, useEffect } from "react";
import axios from "axios";
function App() {
const [items, setItem] = useState([]);
const [isLoading, setIsLoading] = useState(false);
useEffect(() => {
const fetchData = async () => {
setIsLoading(true);
const result = await axios(
"https://hn.algolia.com/api/v1/search?query=react"
);
setItem(result.data.hits);
setIsLoading(false);
};
fetchData();
}, []);
return (
<>
{isLoading ? (
<p>Loading</p>
) : (
<ul>
{items.map((item) => (
<li key={item.objectID}>
<a href={item.url}>{item.title}</a>
</li>
))}
</ul>
)}
</>
);
}
export default App;
useEffectの第2引数に空配列を指定して、一回だけ実行するようにしている