⇒ pages/index.js 인 경우 route는 '/'
⇒ pages/blog/index.js 인 경우 route는 'blog'
⇒ pages/blog/first-port.js 인 경우 route는 'blog/first-port.js'
⇒ pages/dashboard/settings/username.js 인 경우 route는 '/dashboard/settings/username'
⇒ pages/blog/[slug].js인 경우 route는 'blog/:slug'
⇒ pages/[username]/settings.js인 경우 route는 '/:username/settings'
⇒ pages/post/[...all].js인 경우 route는 '/post/*'
즉, '/post/2020/id/title'
import Link from 'next/link'
후 <Link href='/' />
이때, pages는 자동적으로 인식!
예시상황:
Post 컴퍼넌트에서 posts를 부모로부터 받아오고, map으로 post를 접근해서, {post.title}로 표시한 후 link를 걸고 싶어요
import Link from 'next/link'
function Post({posts}) {
return(
<>
{posts.map((post) => (
<li key={post.id}>
<Link
href={{
pathname: '/blog/[slug]',
query: { slug: post.slug },
}}
>
<a>{post.title}</a>
</Link>
</li>
))}
</>
)
}
import Router from 'next/router';
export default function Page2() {
return (
<div>
<button onClick={() => Router.push('/')}>home으로 이동</button>
</div>
);
}
⇒ import Router from 'next/router';
사용
⇒ Router객체를 이용하는 것과 Link컴포넌트를 사용하는 것의 기능적 차이는 없다.
BUT! Router 객체가 동적인 코드에 적합하다.
안뇽하세요
Nested Routes 부분에서 확장자 여부가 다른데 오표기 된건지 궁금합니다
'blog/first-port.js', '/dashboard/settings/username'