실습문제 2. Props와 State & 데이터바인딩

실습문제 구조

/practice
 - BoardContainer.tsx 
   - BoardList.tsx
   - BoardInsert.tsx
   - BoardSearch.tsx
   - boardMockUp.ts
BoardMockUp.ts
export const boardList = [
    {
        boardNo: 1,
        boardTitle: '초기게시글 1',
        boardContent: '다이어트3주차 힘드네요',
        boardWriter: 'admin',
        boardDate: '2023/12/27 10:00:00'
    }, {
        boardNo: 2,
        boardTitle: '다이어터 식단표 공유',
        boardContent: '아침 : 삼각김밥, 점심 : 김밥반줄, 저녁 : 삼각김밥',
        boardWriter: 'admin',
        boardDate: '2023/12/27 10:00:00'
    }, {
        boardNo: 3,
        boardTitle: '다이어트끝나면(1)',
        boardContent: '편백찜 먹고싶다',
        boardWriter: 'admin',
        boardDate: '2023/12/27 10:00:00'
    }, {
        boardNo: 4,
        boardTitle: '다이어트끝나면(2)',
        boardContent: '스키야끼 먹고싶다',
        boardWriter: 'admin',
        boardDate: '2023/12/27 10:00:00'
    }, {
        boardNo: 5,
        boardTitle: '다이어트끝나면(3)',
        boardContent: '타코 먹고싶다',
        boardWriter: 'admin',
        boardDate: '2023/12/27 10:00:00'
    }, {
        boardNo: 6,
        boardTitle: '대충만든 제목',
        boardContent: '대충만든 글내용',
        boardWriter: 'admin',
        boardDate: '2023/12/27 10:00:00'
    }, {
        boardNo: 7,
        boardTitle: '다이어트끝나면(4)',
        boardContent: '치킨 피자 먹고싶다',
        boardWriter: 'admin',
        boardDate: '2023/12/27 10:00:00'
    }, {
        boardNo: 8,
        boardTitle: '다이어트끝나면(5)',
        boardContent: '초밥 먹고싶다',
        boardWriter: 'admin',
        boardDate: '2023/12/27 10:00:00'
    }, {
        boardNo: 9,
        boardTitle: '다이어트끝나면(6)',
        boardContent: '햄버거 먹고싶다',
        boardWriter: 'admin',
        boardDate: '2023/12/27 10:00:00'
    }, {
        boardNo: 10,
        boardTitle: '오늘은 무슨날?',
        boardContent: '치팅데이',
        boardWriter: 'admin',
        boardDate: '2023/12/29 10:00:00'
    }
]

1. BoardContainer.tsx

  • boardMockUp의 배열데이터를 export하여 자식 컴포넌트들에 list와 setList를 전달하시오.

import { useState } from 'react';
import { boardList } from './boardMockUp';  
import BoardList from './3. UseStatePractice1';
import BoardRegister from './4. UseStatePractice2';
import BoardSearch from './5. UseStatePractice3';

function BoardContainer(){

  // #1. state선언
  // - BoardList, BoardRegister, BoardSearch의매개변수를확인하여필요한 state를
  //   선언하세요.
  // - 사용할데이터의 초기값은 boardMockUp의 boardList를 사용하세요.

  // #2. props구현
  //  - props문법을 통해 컴포넌트들에 필요한 데이터를 전달하세요.
  //  - 각 컴포넌트의 필요한 데이터는 아래 문제들을 확인하여 파악하세요.
  return(
    <div>
      <BoardList />
      <BoardRegister />
      <BoardSearch />
    </div>
  )
}


export default BoardContainer;

2. BoardList.tsx

3. BoardInsert.tsx

4. BoardSearch.tsx

  • 검색결과 없는 경우

Last updated