<colcolor=#fff> Remix | |
종류 | <colbgcolor=#fff,#000>프레임워크 |
라이선스 | MIT 라이선스 |
언어 | TypeScript |
지원 문법 | JSX |
링크 |
1. 개요
React Router를 기반으로 구축된 오픈소스 react 프레임워크.2. 상세
Next.js 와 같이 풀스택 프레임워크이며, React 의 기능을 최대한 존중한다는 모토를 가지고 출발한 프레임워크이다.React 18 출시 당시에는 업데이트가 느렸던 Next.js 와는 달리 버전업 만으로 바로 React 18 버전에 대응하여 주목받기도 했으며, OpenAI 에서 다른 프레임워크 대비 클라이언트 컴포넌트 구현의 편리하다는 이점을 이유로 Next.js 에서 이 프레임워크로 변경하여 또한번 주목받았다.
2.1. 라우팅
React 에서 SPA 어플리케이션 구축 시 사용하는 라우팅 모듈을 여기서 만들었기 때문에 라우팅 방식은 SPA 어플리케이션 구축 경험이 있다면 어렵지 않게 접근이 가능하지만, Next.js 등 여느 라우팅 지원 프레임워크와는 사뭇 다른 방식의 파일 라우팅 방식을 사용하고 있는데, 보통의 프레임워크에서는 하위 폴더의 파일을 라우팅으로 지정하면 완전히 다른 페이지로 취급하지만, Remix 에서는 상위 페이지 및 컴포넌트의 하위 컴포넌트로 취급한다.예를 들면,
/board/_index.tsx
: 게시물 목록/board/$boardSeq.tsx
: 게시물 상세 (게시물 번호는 받는 동적 라우팅)/board/$boardSeq/comments.tsx
: 게시물의 전체 댓글 목록
이렇게 라우팅을 구성하면, 게시물의 댓글 컴포넌트를 라우팅용
children
속성에 대응하는 컴포넌트인 <Outlet />
을 통해 게시물 폴더에 있는 컴포넌트 안에 주입하여 댓글 컴포넌트를 표현할 수 있다.물론 페이지 단위 및 현재 폴더의 단계 컴포넌트를 유지하면서 하위 라우팅을 사용하고 싶다면, 파일명 중간에
.
을 사용하여 구분하도록 할 수 있다.상기한 게시판 라우팅을 연장하여 예를 들면,
/board/$boardSeq.edit.tsx
: 게시물 수정 컴포넌트, 브라우저 상에서 접근 시/board/$boardSeq/edit
경로로 접근하지만, 게시물 폴더와 같은 레벨, 즉, 게시물 상세와 같은 레벨의 컴포넌트로 취급한다.
2.2. 프로젝트 시작
#!syntax sh
npx create-remix