- 대체하는게 아니고 wrapping을 하는 것이다
- a tag에 CSS class를 지정한다고
Link
tag에className
줘봐야 소용 없다 - 참고
[nextjs] `Link`는 `a`의 대체제가 아니다
· One min read
Link
tag에 className
줘봐야 소용 없다npm run start
사용npm run export
사용package.json
에서 scripts.build
에 next export
추가: "build": "next build && next export"
npx
사용한다npx create-next-app next-oauth-101
cd next-oauth-101; npm run dev
next.js/examples
아래서 필요한 기능을 찾는다.
NextAuth.js
를 추가하면 끝이다API's & Service
-> Credentials
-> Create credentials -> OAuth Client IDnpm install next-auth
.env
를 사용한다.env.production
, .env.development
등을 사용하라는데 이것들은 git에 올리지 않아야겠지?http://localhost:3000/api/auth/a/b/c
에 대해 req.query
를 출력해 보면 { nextauth: [ 'a', 'b', 'c' ] }
이 나온다.env.local
를 읽어오게 되어있다NEXT_PUBLIC_
으로 시작하면 browser에서도 읽을 수 있게 제공된다.env.local
: 최고의 우선순위. 모든걸 override한다. git에 올리면 안된다 (.gitignore
에 추가되어야 한다).env.development
, .env.production
: development용(next dev
), production용(next start
) default values. git에 올린다.env
: 모든 환경을 커버하는 default values. git에 올린다.page
는
pages
디렉토리에 존재하는 소스파일명으로 자동 route 설정됨
pages/about.js
를 만들면 browser에서 /about
이란 경로로 접근된다function About() {
return <div>About</div>
}
export default About
pages/posts/[id].js
- path parameter도 지원한다
[
, ]
가 들어가는게 생소하지만 된다hydration
과정이라고 칭함next build
)에 html을 생성해 버린다getStaticProps
, getStaticPaths
사용getServerSideProps
를 정의하면 된다