티스토리 뷰

반응형

Github page로 포트폴리오 웹페이지 만들기


이제 about과 work 페이지를 만들어 route 설정을 통해서 접속 할수 있게끔 해주어야 합니다.

그전에 현재까지 진행된 사항 중 몇가지 설정을 변경 시켜 주겠습니다.

1. webpack resolve alias


npm 으로 설치된 모듈이외에 css나 svg 또는 component 파일들을 import 시킬때 상대 경로를 이용해 불러오고 있습니다.

// example

import GITHUB from "./resources/images/common/GITHUB.svg";

파일의 위치를 옮겨 줄때 만다. 경로를 변경 해줘야하는 번거로움이 생기므로 webpack의 resolve 설정에 alias를 추가 해 줍니다.

// webpack.config.js
...
resolve: {
    extensions: [".js", ".json", ".wasm"],
    alias: {
      "@pages": path.resolve(__dirname, "src", "pages"),
      "@resources": path.resolve(__dirname, "src", "resources"),
      "@components": path.resolve(__dirname, "src", "components"),
    },
  },
...

이 설정을 통해서 특정 경로들을 지정한 별칭을 통해 불러 올수있습니다.

2. Main.js 이동 및 파일 만들기


Main.js 파일을 src→ Main.js 에서 pages 디렉토리를 만들어 src→pages→main→index.js 로 변경해 줍니다.

이후 pages 디렉토리 안에 about 와 work를 만들어 각 디렉토리 안에 index.js파일을 만들어 줍니다.

index.js파일을 만들어 사용하면, import 시에 디렉토리 이름까지 작성하여 index.js에서 export된 것들을 불러 올수 있습니다.

이제 Main.js에서 변경된 main→index.js 의 모듈 경로들을 변경해 줍니다.

// src/pages/main/index.js
...
// SVG
import HIIO420 from "@resources/images/common/HIIO420.svg";
import ABOUT from "@resources/images/common/ABOUT.svg";
import WORK from "@resources/images/common/WORK.svg";
import BLOG from "@resources/images/common/BLOG.svg";
import GITHUB from "@resources/images/common/GITHUB.svg";

import {
  FlexCenterLayout,
  FlexLayout,
  GridColumnLayout,
} from "@resources/globalStyle";

마찬가지로 App.js에서 import 된 Main component의 경로도 수정해 줍니다.

// App.js

// css
import "@resources/css/app.css";

// Pages
import Main from "@pages/main";

3. about / work 밑작업


Route에 설정할 about과 work 안에 있는 index.js에 각각 About, Work component들을 정의해 export 시켜 줍니다.

// src/pages/about/index.js

import React from "react";

const About= () => {
  return <></>;
};

export default About;
// src/pages/work/index.js

import React from "react";

const Work = () => {
  return <></>;
};

export default Work;

아직은 아무것도 없지만, 차차 채워 나가 보도록 하겠습니다.

이제 생성한 component들을 App.js에서 route에 추가 해 줍니다.

//App.js
...
		<Routes>
      <Route exact path="/" element={<Main />}></Route>
      <Route exact path="/about" element={<About />}></Route>
      <Route exact path="/work" element={<Work />}></Route>
    </Routes>

마지막으로 main→ index.js의 about 과 work의 링크를 등록한 route의 경로로 변경해 줍니다.

// src/pages/main/index.js
...

				<SvgWrapper>
          <Link to="/about">
            <ABOUT />
          </Link>
        </SvgWrapper>
        <SvgWrapper justifyContent="center">
          <Link to="/work">
            <WORK />
          </Link>
        </SvgWrapper>

What is Next?


짧지만, 새로운 페이지를 만들기 위한 밑작업으로 새로운 파일을 만들고, 기존의 파일을 이동, 수정 했습니다.

이제 Work와 About을 하나둘씩 채워가면 점점 마무리가 될거 같습니다.

하하하.

끝!!!

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함
반응형