프론트엔드✏️/코드캠프
Shallow Routing
당근먹는하니
2022. 6. 5. 14:08
728x90
반응형
Shallow routing은 Next.js의 기능 중 하나로 데이터를 다시 가져오지 않으면서(fetching 메서드를 다시 실행하지 않음) URL을 변경할 수 있는 기능이다.
이를 통해 URL을 업데이트하면 'pathname'과 'query' 상태를 잃지 않고 라우터 객체를 통해 받을 수 있게 된다.
import { useEffect } from 'react'
import { useRouter } from 'next/router'
// Current URL is '/'
function Page() {
const router = useRouter()
useEffect(() => {
// Always do navigations after the first render
router.push('/?counter=10', undefined, { shallow: true })
}, [])
useEffect(() => {
// The counter changed!
}, [router.query.counter])
}
export default Page
최초 렌더링 후 라우터는 /?counter=10으로 업데이트 되는데, 이 때 페이지가 새로 렌더링 되지 않고 상태 라우터만 변경 된다.
Shallow Routing은 현재 페이지에서 URL을 변경하는 경우에만 작동한다.
router.push('/?counter=10', '/about?counter=10', { shallow: true })
다른 페이지의 경우 { shallow : ture } 를 해도 새 페이지(pages/about.js)를 로드한다.
728x90
반응형