1. 더미데이터 data.json

{
    "days" : [
        {"id":1, "day":1},
        {"id":2, "day":2},
        {"id":3, "day":3}
    ],
    "words" : [
        {
            "id":1,
            "day":1,
            "eng":"book",
            "kor":"책",
            "isDone":false
        },
        {
            "id":2,
            "day":1,
            "eng":"apple",
            "kor":"사과",
            "isDone":false
        },
        {
            "id":3,
            "day":2,
            "eng":"car",
            "kor":"차",
            "isDone":false
        },
        {
            "id":4,
            "day":2,
            "eng":"banana",
            "kor":"바나나",
            "isDone":false
        },
        {
            "id":5,
            "day":3,
            "eng":"pen",
            "kor":"펜",
            "isDone":false
        },        
        {
            "id":6,
            "day":3,
            "eng":"school",
            "kor":"학교",
            "isDone":false
        }
    ]
}

day 3일차와 1day 당 단어 2개씩 더미 데이터를 생성했다.

 

2. Header.js

import React from "react";

const Header = () => {
    return(
        <div className="header">
            <h1>
                <a href="/">토익 영단어(고급)</a>
            </h1>
            <div className="menu">
                <a href="#x" className="link">
                    단어추가
                </a>
                <a href="#x" className="link">
                    Day 추가
                </a>
            </div>
        </div>
    )
}

export default Header;

 

3. DayList.js

import React from "react";
import dummy from '../db/data.json';

const DayList = () => {
    console.log(dummy);
    return(
        <ul className="list_day">
            {dummy.days.map(day => (
                <li key={day.id}>
                    Day {day.day}
                </li>
            ))}
        </ul>
    )
}

export default DayList;

 

위 그림처럼 나오도록 ul과 li에 css를 작성했고

 

dummy의 days에 map을 사용하여 li값에 ket값을 넣고 내용을 반복해준다.

 

4. Day.js

import React from "react";
import dummy from "../db/data.json"

const Day = () => {
    //dummy.words 사용
    const day = 1;
    const wordList = dummy.words.filter(word => (word.day === day));
    console.log(wordList);
    return(
        <table>
            <tbody>
                {wordList.map(word => (
                    <tr key={word.key}>
                        <td>
                            {word.eng}
                        </td>
                        <td>
                            {word.kor}
                        </td>
                    </tr>
                ))}
            </tbody>
        </table>
    )
}

export default Day;

그리고 filter를 사용하여 day1의 내용만 뽑아온다.

 

5. App.js

import './App.css';
import Header from './component/Header';
import DayList from './component/DayList';
import Day from './component/Day';
import { BrowserRouter, Route, Swich } from 'react-router-dom';

// 함수형 컴포넌트
function App() {
  return (
    <div className="App">
      <Header/>
      <DayList/>
      <Day/>
    </div>
  );
}

export default App;

 

 

6. 결과

간단하게 map과 filter를 사용하여 day1의 값만 출력해보았다.

다음시간에는 react-router-dom을 사용하여 Day 1과 Day 2, Day 3을 누를 때 마다 페이지 전환하여

day1의 단어, day2의 단어, day3의 단어를 출력해보겠다.

'🌠Development > React' 카테고리의 다른 글

[React] react-router-dom이 뭔데?  (0) 2025.03.14
[React] 개발환경 설정하기  (0) 2025.03.12