# useRouter

23개의 포스트

[Next.js] 3

useRouter 훅 useRouter() 훅은 Next.js의 라우팅 정보를 담고 있는 객체를 반환한다. 이 객체 내에는 현재 페이지에 대한 다양한 정보와 메서드가 들어있다. pathname : 현재 라우트의 경로이름 query : 쿼리 문자열 파라미터를 객체 형태로 담고 있다 asPath : 실제 브라우저에 표시되는 경로정보 route : 경로 패턴 isReady : 라우터가 초기화된 후 true가 된다. isFallback : 현재 페이지가 Fallback 상태인지를 나타낸다. isLocaleDomain : 현재 도메인이 local domain인지를 나타낸다. events : 라우터 이벤트를 담고 있다. basepath : 기본경로를 나타낸다. push, replace, reload, back, prefetch, etc... : 라우터를 조작하는데에 사용되는 메서드들이다. 일반적으로 웹브라우저의 라우터는 스택

1일 전
·
0개의 댓글
·

router.push와 router.replace의 차이

useRouter로 생성한 객체인 router를 사용할때 browser history와 관련된 메서드인 push와 replace가 있다 일단 라우터 히스토리는 스택 구조로 되어있는데, push를 사용하면 새로운 route가 스택의 top으로 올라가고 replace를 사용하면 스택의 top을 완전히 그 route만으로 덮어씌운다(overwritting) 예를 들어 'page/product'에서 'page/product/detail'로 push를 사용해서 이동한 후에 뒤로가기를 누르면 'page/product'로 이동함 하지만 replace로 이동한 후 뒤로가기를 누르면 'page'로 이동함 그러니까 page를 기준으로 page/product 페이지에서 (replace 메서드를 사용한) 버튼을 눌러 page/product/detail로 이동한 상태에서 뒤로가기를 누르면 라우터 히스토리에는 page -> page/product/detail로 덮어씌워졌기 때문에 이전 페이지는 pag

2023년 8월 7일
·
1개의 댓글
·

Next.js useRouter의 다양한 기능들(prefetch)

useRouter > router.push('/어쩌구') 실행하면 /어쩌구 경로로 페이지이동이 가능합니다. > router.back() 실행하면 뒤로가기해줍니다. > 실행하면 앞으로가기해줍니다. > 실행하면 새로고침해줍니다. 근데 페이지를 처음부터 다시 로드하는게 아니라 이전과 바뀐점을 분석해서 바뀐부분만 새로고침해준다고 합니다. Next.js 공식문서에선 soft refresh라고 부릅니다. prefetch 기능 > 실행하면 '/어쩌구'의 내용을 미리 로드해줍니다. 그럼 그 페이지 방문할 때 매우 빠르게 방문할 수 있습니다. 빠른 사이트를 만들고 싶을 때 쓸 수 있는 유용한 기능입니다. > 다행히 server component에서도 저런 기능을 사용할 수 있는데 쓰면 태그가 화면에 보이는 순간 '/' 페이지를 자동으로 미리 로드해줍니다. > 자동으로 미리

2023년 7월 31일
·
0개의 댓글
·
post-thumbnail

[번역] Next.js13 App Router - Routing Fundamentals

On this page 모든 어플리케이션의 뼈대는 라우팅으로 이루어져 있습니다. 이번 문서에선 웹을 위한 기본적인 라우팅 컨셉과 Next.js에서 어떻게 라우팅을 핸들링 하는지 알아봅니다. Terminology 먼저 해당 문서를 읽으면서 마주치게 될 용어들입니다. Tree: 계층구조를 시각화하여 보여주는 전통적인 방식입니다. 예를 들어 부모와 자식 컴포넌트가 존재하는 컴포넌트 트리, 폴더 구조 등등이 해당 됩니다. Subtree: 트리의 일부분입니다. 새로운 루트에서 시작하여 리프노드로 끝납니다. Root: 트리 혹은 서브트리에서 시작 노드입니다. 루트 레이아웃이 적절한 예시입니다. Leaf: URL에서 마지막 세그먼트 같은 서브트리에서 자식 노드가 존재하지 않는 노

2023년 7월 26일
·
0개의 댓글
·
post-thumbnail

Vite React useRouter Hook 만들기

History API 를 이용한 Router 구현하기 [클릭] 이전에는 History API 를 통해서 SPA Router 를 구현해 봤다. window.history.pushState() 함수를 사용하여 새로운 브라우저 히스토리 항목을 추가하고, 이를 통해 URL을 변경하는 방식으로 페이지 이동을 처리하고 있습니다. 또한, 'popstate' 이벤트를 감지하고 이 이벤트를 통해 URL이 변경되면 적절한 컴포넌트를 렌더링하는 로직을 구현하고 있습니

2023년 7월 10일
·
0개의 댓글
·
post-thumbnail

[Next.js] Next.js 프로젝트에서의 기본세팅과 라우팅

이번 블로깅에선 Next.js의 초기세팅에서부터 기본적인 페이지를 만드는 것을 해보려한다. 이 블로깅은 React문법을 기본적으로 알고 있다고 가정하고 진행하려 한다. 🙌 Next.js 프로젝트 생성 Next.js를 위한 프로젝트를 만들기 위해선 아래와 같은 명령어를 터미널에 입력하면 된다. 그러면 다음과 같은 명령어가 나온다. 화살표 옆에 본인 프로젝트의 이름을 적으면 된다. 이번 연습 프로젝트는 test 라는 이름으로 하겠다. 그러고 나면 TS를 쓸건지 Router를 쓴건지 등등 물어보는데, 본인 프로젝트에 맞게 Yes/No를 입력해주면 다음과 같이 프로젝트 기본 세팅이 완성된다. 그리고 프로젝트를 실행하고 싶다면 다음과 같은 명령어를 터미널에 입력하면 된다. > np

2023년 7월 6일
·
0개의 댓글
·
post-thumbnail

Functions / useRouter 번역

App Directory가 나오고 살짝 바뀌었다. Aravoza! useRouter useRouter 훅은 클라이언트 컴포넌트 내에서 프로그래밍 방식으로 라우트를 변경할 수 있게 해줍니다. > 권장사항: useRouter를 사용하는 특별한 요구사항이 없는 한, Navigation에는 [`` 컴포넌트](https://velog.io/@okko8522/Routing-Linking-and-Navigating-%EB%B2%88%EC%97%AD-%EB%B0%8F-%EC%9A%94%EC%95%BD#link-%EC%BB%B4%ED%8F%AC%EB%

2023년 6월 23일
·
0개의 댓글
·

[Next.js] - v13.* `next/navigation`

Changes 넥스트 ^v13.* App 디렉토리를 사용하게 되는 경우 기존 Page 디렉토리에서 사용하던 next/router 를 사용하지 않고 next/navigation을 통해 사용할 수 있게 변경되었다 pageDir: appDir: 1. useRouter 클라이언트 컴포넌트에서만 사용할 수 있느 훅으로 'use client'필수 기존 next/router에서 사용하던 일부 함수만 사용 가능하며 추가적인 기능도 있다 useRouter` 함수 push(href: string) : href 로 클라이언트 사이드 내비게이션 브라우저 히스토리의 스택 추가, 기존 next/router 의 as, options 사용 불가 🌟 Next.js 라이브러리 내부적으로 Options를 받을 수 있는Parameter 설정은 되어있으나, 문서에도 정보가 없고 구체적인 타입이

2023년 6월 14일
·
0개의 댓글
·
post-thumbnail

PageTemplate 정리하기! (with useRouter)

회사의 홈페이지는 회사 전반을 소개하는 사이트이다. 그만큼 방대한 정보를 담아내는 것이 코드스테이츠 웹사이트의 임무이다. 다양한 내용을 담아야 하는 만큼 사내 다양한 팀과 협업하게되고, 요청사항 역시 다양하다. 많은 개발자들이 거쳐가기도 했고, 일부 페이지는 외주를 통해 개발되어서, 다양한 코드베이스가 혼재되어있기까지 한 상황이다. 특히 회사에 입사하고 지난 1년반 가량은, 수많은 실험과 요청사항을 최대한 많이 구현해드리는데에 집중해왔었다. 그런 지금 FE개발자들 모두 코드 베이스를 관리하는 것이 너무 힘들다고 판단했다. 앞으로 최소 반년에서 일년 가량은 디자인 시스템을 재정비하고, 가급적 코드를 잘 유지보수할 수 있는 방향으로 개발에 임하기로 결정! 코드를 깔끔히 정리하는 것이 현재 최대 관

2023년 5월 12일
·
1개의 댓글
·

[Next.js] UseRouter

Link가 있는데 왜 쓰는가? 👉 추가적인 기능들을 사용하기 위하여 ✅ 사용 방법 useRouter를 포함하여 use~는 Client Component에서만 사용할 수 있으니 'use client'선언을 해주자. 기존의 큰 파일은 보통 Server Component이기 때문에 따로 useRouter를 위한 파일을 만들어준다. 그리고 router를 사용할 기존의 Server Component에서 컴포넌트를 import하여 사용한다. 여기선 `` 컴포넌트를 import 하였다. ✅ useRouter의 여러가지 기능들 router.push('/~') : 해당 경로로 페이지 이동 router.back() : 뒤로 가기 router.forward() : 앞으로 가기 router.refresh()** :

2023년 5월 3일
·
0개의 댓글
·
post-thumbnail

[Next.js] useRouter와 context

컴포넌트 안에서는 useRouter를 사용하여 url의 값을 받아올 수 있다. getStaticProps 함수 안에서는 이처럼 context를 사용하여 값을 받아올 수 있다. getStaticProps 함수는 컴포넌트 함수보다 먼저 실행되기 때문에 데이터의 사전 준비가 필요하거나 하는 상황에서는 getStaticProps의 context를 사용해서 처리하자

2023년 5월 2일
·
0개의 댓글
·

[Challenge] useRouter hook 만들기(with. react-router)

window.location은 종종 사용했는데 .pathname은 뭘까? 이름만 봤을때는 현재의 라우팅 위치를 가져오는 것 같다. 현재 위치의 pathname이 왜 필요하냐면, 네비게이션은 현재 위치를 알려주는 css를 입히기 마련이기 때문. 실제로 아래와 같이 sidebar 컴포넌트에서 className을 삼항연산자로 리턴하는 것을 볼 수 있었다. .pathname mdn doc 위치에 대한 url의 경로를 포함하는 문자열. 경로가 없다면 비어있다. 경로가 있다면 '/'뒤의 url 경로를 포함한다. 맨날 reload랑 replace href만 썼는데 location에도 많은 api들이 있구나... 😳 useNavigate > package.json 저놈의 RemixRouter는 뭘까. react-router-dom이나 r

2023년 3월 19일
·
0개의 댓글
·

Next.js router.query가 undefined일 때..

router.isReady는 라우터 필드가 클라이언트 측에서 업데이트되고 사용할 준비가 되었는지 여부를 확인

2023년 3월 8일
·
0개의 댓글
·
post-thumbnail

[NextJS] link, useRouter 라우팅 방식

Next.js 라우팅 > 이번 React 사이드프로젝트에 적용시켜본 Next.js를 하며 느꼈던 차이는 우선 라우팅하는 방식이었다. Next.js는 pages폴더 내부의 폴더or파일명이 자동으로 path가 설정되기 때문에 처음엔 당황하였지만 전에 React프로젝트에서 Routes, Route, path, element를 일일히 다 적어야 했던거와 비교해보면 아주 간단하고 편했다. path 설정 React React는 react-router-dom을 사용해 path를 설정하고 동적 라우팅의 경우 :(콜론)을 사용하여 값을 설정해줘야 한다. Next.js Next.js의 경우 따로 path를 설정하는 것이 아니라 /pages 혹은 /src/pages 폴더 내의 폴더명, 파일명에 맞춰 자동으로 path가 설정 된다. (src에 pages가 있는경우 따로 만든 pages 폴더의 라우팅은 무시된다.) 동적 라우팅의 경우에는 파일명이

2023년 1월 26일
·
0개의 댓글
·
post-thumbnail

[Next] useRouter로 url 정보를 이용해 디테일 페이지 만들기(feat. getServerSideProps) & 렌더링 시 html과 js의 차이 및 해결

index.js 기존 router와 Link의 경로를 title을 포함하여 변경해 줌 결과 화면 및 개발자 도구 상황(아직 [...id].js 파일 안 고쳐서 Loading으로 뜸) [...params].js Deatail 기존 [...id].js에서 의미를 위해 ...params로 변경 router.query.para

2022년 10월 18일
·
0개의 댓글
·
post-thumbnail

[Next] useRouter(.push(url, as))와 Link(href, as)를 이용해 navigate하는 방법 & URL query 지정 및 내용 가져오기

next.confing.js에서 rewrite 설정 API_KEY를 숨기기 위해 rewrite설정 rewrite가 궁금하다면? https://velog.io/@minsu2344/Next-next.config에서-redirect와-rewrite로-중요-정보-가리기-.env-파일에서-정보-가져오기 useRouter.push(url, as) router 변수에 useRouter 할당 router.push는 navigate해주는 함수 첫 매개변수: 이동할 url 주소 /movies/${id} 처럼 그냥 주소만 적어줘도 됨 객체 형태로 만들 수 있음 pahtname: 이동할 url query: ? 뒷부분에 추가하고 싶은 내용(여러 개가 있으면 &로 구분됨) 두 번째 매개변수: as(겉으로 보여질 URL) url에 숨기고 싶은 정보를 가려주는 역할 `/movies/${id

2022년 10월 17일
·
0개의 댓글
·
post-thumbnail

[Next] 중첩 라우터 URL 폴더 만들기 & 변수명으로 URL 이동(feat. useRouter)

중첩 라우터 폴더 구조 page에 중첩라우터를 적용하고 싶다면 폴더 내에 파일을 만듬 index.js 파일은 '/' 경로로 지정 URL에 변수(feat.useRouter) 변수명을 대괄호[ ]로 감싸줌. 만약 대괄호가 없으면 /movies/id로 경로가 설정됨 url에 /movies/abc /movies/123 등을 입력한 결과 원하던 'detail' 메시지가 뜸 ![](https://velog.velcdn.com/images/minsu2344/post/cf3c4b99-6db6-48ad-9c7c-5baf661

2022년 10월 17일
·
0개의 댓글
·

[Next] Link와 useRouter를 이용하여 Navbar 만들고 꾸미기

주의: Navbar.js는 coponents 폴더에 있는 컴포넌트이므로(page 아님) 이름을 대문자로 시작함 Link Next의 Link는 to가 아닌 href 프로퍼티로 경로 설정 style, className등을 설정 불가 a태그를 따로 만들어 style 및 className 등 설정 useRouter useRouter를 사용하면 location 정보(현재 경로, 이전 페이지 등)를 얻을 수 있음 router.pathName(현재경로)을 이용해 a태그의 스타일 변경 Next에서 style 적용하는 다양한 방법은 다음 게시물로!!

2022년 10월 11일
·
0개의 댓글
·

NextJS | useRouter() params undefined issue

문제 발생 출석 이벤트 페이지에서 URL의 params의 date 값을 기반으로 해당 날짜의 이벤트 페이지를 렌더링 하고 있다. 만약 date 값이 지금 진행하는 이벤트의 날짜와 일치하지 않는다면 진행중인 이벤트가 아닙니다. 라는 경고를 띄우고 페이지 접근을 제한한다. 하지만 정상적인 date 값으로 페이지에 접근했음에도 일시적으로 경고가 노출된 후 페이지에 접근하는 이슈가 발생했다. 원인 분석 이는 NextJS의 useRouter() 를 사용해 얻은 router 객체의 작동 방식에 원인이 있었다. 공식 문서에서 How it works 일부를 발최하면 다음과 같다. > During prerendering, the router's query object will be empty s

2022년 6월 15일
·
0개의 댓글
·

Next.js useRouter 사용 방법

useRouter Next.js에서 함수 형식으로 라우팅 할 수 있게 해주는 Next.js 기본 라이브러리로 React에서 useNavigate 또는 useHistory와 같은 역할을 한다. useRouter 사용법 1. router.push() ** 위와 같이 사용하며 router.push(URL) 형식으로 해당 URL로 이동한다. 또한 버튼 클릭시 "/" 경로로 이동하며, query로 url에 정보를 담아준다. ** 2. router.replace() 위와 같이 router.replace(URL1, URL2) 형식으로 URL1으로 이동후, URL2로 주소만 변경한다.

2022년 6월 10일
·
0개의 댓글
·