Next.js 의 Router 는 file-system 기반
리액트에서는 별도의 Router 를 제공하지 않기 때문에 별도의 라이브러리를 사용해야 하지만, Next.js 는 기본적으로 제공을 합니다.
import Link from 'next/link'
import { useEffect, useState } from 'react'
export async function getStaticProps(){
console.log('server')
return {
props : {time : new Date().toISOString()}
}
}
export default function Home() {
return (
<div>
<h1><Link href="/ssg">SSG로 - pages -</Link></h1>
<h1><Link href="/isr">ISR로 - pages -</Link></h1>
</div>
)
}
import Link from 'next/link'
import { useEffect, useState } from 'react'
export async function getStaticProps(){
console.log('server')
return {
props : {time : new Date().toISOString()}
}
}
export default function Home() {
return (
<div>
<h1><Link href="/ssg">SSG로</Link></h1>
<h1><Link href="/isr">ISR로</Link></h1>
</div>
)
}
즉, pages 폴더가 있다면, src 폴더 안의 pages 는 무시가 됩니다.
{
"compilerOptions" : {
"baseUrl" : "src"
}
}
// import Hello from '../../src/components/Hello'; // 기존
import Hello from '/src/components/Hello';
const first_item = () => {
return (
<>
<h1>first_item</h1>
<Hello/>
</>
)
}
export default first_item;
/product/first-item 까지는 접근이 가능하지만, product 로는 접근이 안될까?
정답은 그냥 /product 를 입력하면 404 가 나옵니다.
대괄호를 하고 어떤 값을 넣으면 그 값의 와일드카드처럼 동작을 합니다.