pages/
디렉터리 안의 모든 파일은 곧 라우팅 규칙index.js
로 저장된 페이지는 http://localhost:3000 접근 시 나타남contacts.js
는 http://localhost:3000/contacts 접근 시 나타남pages/posts/
안에 index.js
만들어서 반환pages/posts/
안에 [slug].js
파일 생성export async function getServerSideProps({params}) {
const { name } = parmas;
return {
props: {
name,
},
};
}
fuction Greet(props) {
return (
<h1> Hello, {props.name}! </h1>
);
}
→ http://localhost:3000/greet/mitch 주소로 가면 ‘Hello, mitch!’라는 문구 확인 가능
❗ getServerSideProps(), getStaticProps()는 반드시 객체를 반환하고, 사용할 때는 props 속성값 사용해야함
import { useRouter } from 'next/router';
function Greet() {
const { query } = useRouter();
return <h1>Hello {query.name}!</h1>;
}
export default Greet;
preload={false}
<Link href='/blog/2021-01-01/happy-new-year'>Post</Link>
<Link
ref={{
pathname: '/blog/[date]/[slug]'
query: {
date: '2020-01-01',
slug: 'happy-new-year',
foo: 'bar'
}
}}
>
Post
</Link>
위 링크 클릭시 http://localhost:3000/blog/2021-01-01/happy-new-year?foo=bar 로 연결
6. router.push 메서드
const router = useRouter();
useEffect(() => {
router.push('/login');
}, [])
useEffect
에 의해 코드가 클라이언트에서만 실행됨출처: 실전에서 바로 쓰는 Next.js