본문 바로가기
Next.js

Next.js - Routing

by 홍두두현 2023. 1. 17.
반응형
마크다운 까먹기 전에 얼른 블로그 써버리기

돌아왔다... next js로..
csr ssr ssg isr 아직은 좀 헷갈리는 단계이지만 뭔가 기존 React와는 조금 다른 느낌의 nextjs를 해보고 있다. 꽤 괜찮기도 하고 알잘딱 해주는 게 많은 것 같다.
바로 레스공

💡 Nested Routes

Next.js는 우선 파일 베이스 라우팅이다.
기존 React에서 Routing으로 꽤나 고생해본 사람들은 Next.js의 달콤한 파일 베이스 라우팅에 푹 빠져들 수도 있다.

우선 여차저차 create-next-app을 하고 localhost:3000을 켜게 되면 다들 알다시피 이런 모습일 것이다. :3000 뒤에 당연히 index.js가 있다는 것도 알고 있을 것이다.


위 주소창엔 사실 http://localhost:3000라고 루트(root) 폴더인 "/"만 있는 경우이다.

그렇다면 우리가 해보고자 하는 라우팅을 해보자
생각보다 Next.js에서 편리하게 개발할 수 있도록 지원해주는게 많아서 쉽게 할 수 있을 것이다.

먼저 예를들어

pages/category/shoes/nike
pages/category/top/adidas

를 만들고 싶어 한다면 어떻게 해야 할까?

먼저 기본적으로 난 Next.js에서 파일 디렉터리 구조를 만들 때 최상위 폴더 라인에 pages가 아닌 src/pages를 만든다.
(뭔가... 개인적으로 가독성이 높아 보이는 느낌쓰)

본론으로 들어가서 Next.js는 파일 베이스 라우팅이라고 위에서 말했다. 그럼 어떻게?
되게 간단하게


pages를 만들고 그 안에 내가 만들고자 하는 페이지를 폴더에 맞게 만들어주면 끝난다.
ㄱ.. 간단해...

pages/category/shoes/nike.js -> localhost:3000/category/shoes/nike

가 되는 것이다.

💡 [slug]. js

[slug]란? 무엇인가?
내가 이해한 바로는 Next.js에서 데이터에 따라 동적으로 페이지를 만들 수 있는 기능이다.

  • pages/blog/[id]. js
  • pages/blog/[... slug]. js

[id]. js는id기반으로 동적 페이지를 만들 수 있다.
실제로 지금 프로젝트에서 유저가 회원가입하면 userUid값을 난수로 뿌려주는 로직이 포함되어 있어서 난수로 만들어줘도 동적으로 잘 동작하는 페이지가 있다.
[... slug]. js는 경로까지도 동적으로 만들 수 있다.

  • blog/post/123/2222/33
    이때 파일명은 자유롭게 설정이 가능하고, 폴더 또한 위 규칙을 따른다.

주의할 점

만약 [slug]로 폴더를 만들고 같은 depth에 post라는 폴더가 있다고 가정해 보자

그럼 [slug]에 post를 넣으면... 뭐가 먼저 읽히지..?

[slug]에 post를 적은 폴더/페이지가 아닌 명시적으로 확실히 폴더명이 post인 폴더/페이지가 먼저 읽힌다.

반응형

'Next.js' 카테고리의 다른 글

Next.js - Lokalise 실서버 배포 시 key값만 나오는 현상  (0) 2023.01.17

댓글