폴더 안의 파일을 모두 import 하는 방법

2021. 2. 16. 18:13·WEB/React
반응형

개발 요구사항 중에 config 파일을 입력하면, 메뉴가 자동으로 생성되는 기능이 있었습니다.

react router dom의 Router 안에 Link 메뉴가 생성되는 것은 map 메서드를 통해 생성이 가능하지만 Switch 컴포넌트는 수작업을 해주어야 해야합니다.

 

하지만 컴포넌트 파일이 없을 경우에는 404페이지가 자동으로 뜨게하고 싶어서 찾아보았습니다. 이런 특수한 사항이 아니라면 역시 권장하는 방법은 아닐것 같습니다.

 

const Pages = importAll(require.context("./pages"));

function importAll(r) {
  let files = {};
  r.keys().map((item, index) => {
    files[item.replace("./", "")] = r(item);
  });
  return files;
}

 

이 함수를 통해 pages폴더 안에있는 모든 파일을 Pages라는 변수에 담습니다.

 

<Switch>
	<Route exact path="/">
		{Pages["Home"] ? Pages["Home"].default : Pages["NotFound"].default }
	</Route>
	<Route>
		{Pages["NotFound"].default}
	</Route>
 </Switch>

 

위와 같이 Pages 변수안에 파일 이름으로 module이 담기게 되고,  모듈안의 default 값을 넣어주면 됩니다.

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

'WEB > React' 카테고리의 다른 글

react 18버전에서 달라지는 batching  (0) 2022.04.04
react 컴포넌트가 unmount 된 후 setState가 실행되는 문제 해결 방법  (0) 2021.07.12
react 컴포넌트에 websocket 적용하기  (0) 2021.02.09
redux 강의 기본 핵심 튜토리얼 5탄 - redux data 사용하기  (0) 2020.11.16
redux 강의 기본 핵심 튜토리얼 4탄 - redux data flow  (0) 2020.11.11
'WEB/React' 카테고리의 다른 글
  • react 18버전에서 달라지는 batching
  • react 컴포넌트가 unmount 된 후 setState가 실행되는 문제 해결 방법
  • react 컴포넌트에 websocket 적용하기
  • redux 강의 기본 핵심 튜토리얼 5탄 - redux data 사용하기
vitnal
vitnal
4년차 프론트엔드 개발자 입니다. 이 블로그는 기록하고 싶은 내용을 저장하기 위해 사용하고 있습니다. 정제되지 않은 내용이 있을 수 있는 점 양해 부탁드립니다.
  • vitnal
    vitnal 아카이브
    vitnal
  • 전체
    오늘
    어제
    • 분류 전체보기 (148) N
      • AI (0)
      • WEB (76)
        • React (21)
        • Nextjs (17)
        • JavaScript (16)
        • React Native (5)
        • HTML & CSS (7)
      • CS (3)
      • Git (15)
      • Dev Tools (23)
      • Deploy (12)
      • Tech Memo (11) N
      • Retrospect (7)
  • 반응형
  • hELLO· Designed By정상우.v4.10.5
vitnal
폴더 안의 파일을 모두 import 하는 방법
상단으로

티스토리툴바