본문 바로가기

영화/ReactJS

08. Coin-Tracker

import logo from './logo.svg';
import './App.css';
import { useEffect, useState } from 'react';

function App() {
  const [loading, setLoading] = useState(true);
  const [coins, setCoins] = useState([]);

  useEffect(()=>{
    //fetch("https://api.coinpaprika.com/v1/tickers");  
    /*
      크롬 브루우저에서 F12로 network탭을 보면 tickers를 요청했다는 것을 확인할 수 있다.
      tickers를 클릭하면 Preview, Response 탭을 확인할 수 있는데, 
      Preview 탭에서 코인 정보를 확인할 수 있고 
      Response 탭의 데이터 값들을 json으로 추출한다.
    */

    fetch("https://api.coinpaprika.com/v1/tickers")
    .then((response) => response.json())
    //.then((json) => {console.log(json)})
    .then((json) => {
      setCoins(json);
      setLoading(false);
    });    

  }, []);

  return (
    <div>
      <h1>
          The Coins! 
          {loading ? "" : `(${coins.length})`}
      </h1>
      {
        loading ? (<strong>loading...</strong>) 
        : (
            <select>
            {coins.map((coin)=>(
                <option>
                  {coin.name}
                  ({coin.symbol})
                  : $
                  {coin.quotes.USD.price}
                </option> 
              ))}
          </select>
        )
      }
      
    </div>
  );
}

export default App;

 

coin-tracker.z01
19.53MB
coin-tracker.z02
19.53MB
coin-tracker.z03
19.53MB
coin-tracker.zip
11.72MB

'영화 > ReactJS' 카테고리의 다른 글

10. Practice Movie App - part Two  (0) 2025.04.08
09. Practice Movie App - part One  (1) 2025.04.08
07. Practice Movie App - To Do List  (0) 2025.04.08
06. Cleanup  (0) 2025.04.08
05. useEffect  (0) 2025.04.07