React를 같이 배워보자

React 마지막 간단한 프로젝트 2일차- Home화면

멈추지않아 2022. 3. 1. 19:42
완성본:https://github.com/qjawns0222/hompage.git

어제에 이어서 Home화면을 만들어보겠습니다.

4개의 페이지 중에 가장 간단 한 화면이 될것 입니다.

우선  어제 만든 Components 폴더에 Home.jsx 만들고(보여지는 부분)

src내부에 container폴더 만들어주시고 그안에 Home.container.jsx  생성(전달해줄 데이터 관련)

Components/css/Home.module.css 파일도 만들어주세요 (css설정)

그럼 우선 pagesdml Home.jsx 가서 return을 <Homecontainer />로 수정해주세요 import도 해주세요

import React from "react";
import Homecontainer from "../container/Homecontainer";

export default function Home() {
  return <Homecontainer />;
}
이렇게 함으로써 router에서 Home을 보이게 해줬고 여기서 Homecontainer을 보이게 해줬습니다.
그럼이제 Homecontainer로 이동하겠습니다.
import React from "react";
import Home from "../Components/Home";
export default function Homecontainer() {
  return <Home />;
}

여기서는 다시 Component의 Home을 보이게 해줬습니다.

Componenet/Home

import React from "react";
import Form from "./Form";
import style from "./css/Home.module.css";
export default function Home() {
  return (
    <Form>
      <h1 className={style.name}>천생슈퍼</h1>
      <div className={style.image}>
        <img
          className={style.img}
          alt="메인"
        />
      </div>
      <div className={style.description}>
        30년 전동의 김밥 가게
        <br />
        김밥과 오뎅이 주 메뉴이다
      </div>
    </Form>
  );
}

여기서 보시면 Form이 사용된것을 보실수 있습니다. 즉 Form내용에서 children부분에 작성된 내용이 드간 모습이 출력이 됩니다.

Home.module.css

.name {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 20vh;
  font-size: 50px;
}
.image {
  display: flex;
  justify-content: center;
}
.img {
  max-width: 500px;
}
.description {
  margin: 4%;
  text-align: center;
  font-weight: bolder;
  font-size: 28px;
}
@media only screen and (min-width: 100px) {
  .img {
    width: 200px;
  }
}

작성

@media 부분은 저렇게 {}안에 작성하면 ()안에 적혀있는 조건에 따라 css가 변경이됩니다.

즉 반응형으로 만들때 사용되는 방법입니다.

 

완성된 모양을 보면

이렇게 간단한 Home 화면을 만들었습니다.