[React] 꿈 일기 기록 사이트 제작 일지-2. 리액트 프로젝트 시작 및 페이지 만들기, 라우터 설정, 공용 컴포넌트 설정

2023. 9. 22. 02:02·웹 프로젝트/🌜꿈 일기장
반응형

리액트 설치

npx create-react-app my-app

 

라우터

라우터 설치

npm install react-router-dom --save

 

만들어야 할 페이지는 메인 페이지, 일기 작성 페이지, 일기 수정 페이지, 일기 개별 조회 페이지로 총 4개이다.

페이지를 만들고 라우터에 각 페이지와 url을 매핑한다.

function App() {
  return (
    <div className="App">
      <BrowserRouter>
        <Routes>
          <Route path="/" element={<Home />} exact />
          <Route path="/new" element={<New />} exact />
          <Route path="/edit/:id" element={<Edit />} exact />
          <Route path="/diary/:id" element={<Diary />} exact />
        </Routes>
      </BrowserRouter>
    </div>
  );
}

이제 url과 각 페이지가 매핑되었다.

공용 컴포넌트 생성

웹 사이트에 전체적으로 쓰일 버튼과 상단의 헤더, 카드 컴포넌트를 생성한다.

헤더에는 왼쪽 버튼, 중앙의 텍스트, 오른쪽 버튼의 요소가 들어간다.

import "./Header.css";

const Header = ({ leftBtn, headText, rightBtn }) => {
  return (
    <header>
      <div className="header-left-btn">{leftBtn}</div>
      <div className="header-text">{headText}</div>
      <div className="header-right-btn">{rightBtn}</div>
    </header>
  );
};
export default Header;

 

버튼은 취소, 뒤로 가기 버튼(negative), 저장하기, 수정하기 버튼(positive), 추가하기(plus) 버튼으로 타입을 달리 하여 css를 설정했다. 

import "./Button.css";

const Button = ({ type, text, onClick }) => {
  //버튼 종류 3가지(취소:negative, 완료:positive, 추가:plus)
  return (
    <button className={`Button ${type}`} onClick={onClick}>
      {text}
    </button>
  );
};

export default Button;
.Button {
  cursor: pointer;
  border: none;
  border-radius: 5px;

  padding: 10px 20px;

  font-size: 18px;
  color: #563a3d;
  background-color: transparent;

  white-space: nowrap;
  font-family: "Noto Serif KR";
}

.Button.negative {
  background-color: #b18c79;
}

.Button.positive {
  background-color: #764845;
}

.Button.plus {
  background-color: #975ab7;

  font-size: 14px;
}

 

카드 컴포넌트는 일기 내용을 wrap해줄 컴포넌트이므로 {props.children}을 사용한다.

import "./Card.css";

const Card = (props) => {
  return <div>{props.children}</div>;
};
export default Card;

 

헤더와 버튼을 적용해 본 결과는 아래와 같다.

 

 

페이지 생성 및 페이지 라우팅(React Router Dom) · Yoonyesol/Dream_note@ea2e0d9

Yoonyesol committed Sep 21, 2023

github.com

 

 

공용 컴포넌트(Button, Header, Card) 생성 및 모든 페이지 공통 css 세팅 · Yoonyesol/Dream_note@121ef3a

Yoonyesol committed Sep 21, 2023

github.com

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'웹 프로젝트 > 🌜꿈 일기장' 카테고리의 다른 글

[React] 꿈 일기 기록 사이트 제작 일지-11. 일기 검색 기능 추가  (0) 2023.09.27
[React] 꿈 일기 기록 사이트 제작 일지-10. 사용자가 장르를 수정할 수 있는 `사용자 장르 추가/삭제 기능` 구현 (+ localStorage)  (2) 2023.09.27
[React] 꿈 일기 기록 사이트 제작 일지-6. 일기아이템 생성 및 조회 페이지 이동 구현과 CSS 스타일링  (0) 2023.09.25
[React] 꿈 일기 기록 사이트 제작 일지-5. 일기 정렬 기능 및 페이지 이동 버튼 구현  (0) 2023.09.25
[React] 꿈 일기 기록 사이트 제작 일지-4. Home.js 작성한 월에 맞는 일기 리스트 렌더링  (0) 2023.09.24
[React] 꿈 일기 기록 사이트 제작 일지-1. 기획 및 디자인 구상, url 설계  (0) 2023.09.22
'웹 프로젝트/🌜꿈 일기장' 카테고리의 다른 글
  • [React] 꿈 일기 기록 사이트 제작 일지-6. 일기아이템 생성 및 조회 페이지 이동 구현과 CSS 스타일링
  • [React] 꿈 일기 기록 사이트 제작 일지-5. 일기 정렬 기능 및 페이지 이동 버튼 구현
  • [React] 꿈 일기 기록 사이트 제작 일지-4. Home.js 작성한 월에 맞는 일기 리스트 렌더링
  • [React] 꿈 일기 기록 사이트 제작 일지-1. 기획 및 디자인 구상, url 설계
청량리 물냉면
청량리 물냉면
프론트엔드 기술 역량 강화를 위한 기술 블로그를 운영하고 있습니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기 (512)
      • 프로그래밍 (41)
        • Programming (1)
        • C | C++ (6)
        • Java (28)
        • Python (5)
      • 웹 프로그래밍 (115)
        • HTML | CSS (5)
        • JavaScript | TypeScript (45)
        • React (27)
        • Vue.js (0)
        • Next.js (18)
        • Spring & Spring Boot (13)
        • JSP & Servlet (1)
        • DB (4)
      • 웹 프로젝트 (77)
        • 웹 프로젝트 (22)
        • 🥨스낵몰 (3)
        • 👨‍👨‍👧‍👧소셜 가계부 (26)
        • 🌜꿈 일기장 (11)
        • 🔮포트폴리오 사이트 (11)
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램 (0)
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼 (0)
        • 😺Just Meow It: 조언 사이트 (2)
        • 📕Workly: 교대근무 다이어리 (1)
      • 앱 프로그래밍 (26)
        • Flutter (24)
        • Kotlin (2)
      • Problem Solving (166)
        • 백준 (52)
        • 프로그래머스 (79)
        • SWEA (29)
      • Computer Science (40)
        • 알고리즘 (14)
        • 컴퓨터 네트워크 (18)
        • 이산수학 (8)
      • Developer (47)
        • 후기 (4)
        • 자료정리 (4)
        • 취업 | 취준 (9)
        • SSAFY (1)
        • 웹개발 교육 프로그램 (9)
        • TIL (20)
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    파이썬
    Jiraynor Programming
    spring boot
    컴퓨터네트워크
    리액트
    AWS
    구현
    블로그 제작
    React
    공식문서
    알고리즘
    자바
    타입스크립트
    d3
    플러터
    mysql
    Next.js
    웹사이트
    bfs
    포트폴리오
    뉴렉처
    클론 프로젝트
    자바스크립트
    백준
    SWEA
    프로젝트
    프로그래머스
    ZeroCho
    강의내용정리
    Til
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
[React] 꿈 일기 기록 사이트 제작 일지-2. 리액트 프로젝트 시작 및 페이지 만들기, 라우터 설정, 공용 컴포넌트 설정
상단으로

티스토리툴바