๐ Pages
Next.js์ ์ฅ์ ์ค ํ๋์ธ ๊ธฐ๋ฅ์ด๋ค.
Pages ๋ฐ์ ํ์ผ์ ์์ฑํ๊ณ ์ฝ๋ฉํ๋ฉด ๊ทธ ํ์ผ์ ๊ฒฝ๋ก๊ฐ URL๊ฒฝ๋ก๊ฐ ๋์ ๋ผ์ฐํ ์ด ํธ๋ฆฌํ๋ค(ํ์ผ ์์คํ ๋ผ์ฐํ )
Next.js๋ ํ์ผ์ ์ ์ฅํ๋ ์ฆ์ ๋ธ๋ผ์ฐ์ ์์ ํ์ด์ง๋ฅผ ์๋์ผ๋ก ์ ๋ฐ์ดํธ ํ๋ค.
React Developer Tool์ด๋ผ๋ ํฌ๋กฌ ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ด์ฉํ๋ฉด ๋ณด๊ธฐ ์ฝ๋ค.
Next.js ๊ฐ๋ฐ ์๋ฒ์๋ Fast Refresh๊ฐ ํ์ฑํ ๋์ด์์ด์ ํ์ผ์ ๋ณ๊ฒฝํ๋ฉด ๋ธ๋ผ์ฐ์ ์ ๋ณ๊ฒฝ ์ฌํญ์ ์๋์ผ๋ก ์ฆ์ ์ ์ฉํ์ฌ ์๋ก๊ณ ์นจ ํ ํ์๊ฐ ์๋ค. ์๋ก๊ณ ์นจ์ ์ผ์ผํ ํ ํ์๊ฐ ์์ด์ ํธ๋ฆฌํ๊ณ ๋น ๋ฅธ ์์ ์ด ๊ฐ๋ฅํ๋ค.
(์ฐธ๊ณ ) https://nextjs.org/docs/basic-features/fast-refresh
๐งญ Next.js์ ํ์ด์ง
Next.js์์ ํ์ด์ง๋ ํ์ด์ง ๋๋ ํ ๋ฆฌ(Pages)์ React Component ํ์ผ์ด๋ค.
ํ์ด์ง๋ ํ์ผ ์ด๋ฆ์ ๋ฐ๋ผ ๊ฒฝ๋ก์ ์ฐ๊ฒฐ๋๋ค.
์๋ฅผ ๋ค๋ฉด,
- pages/index.js => '/' ์ฆ, root๊ฐ ๋๊ณ ex. (https://localhost:1111/)
- pages/user/10 => '/user/10' ์ ๊ฒฝ๋ก๊ฐ ๋๋ค. ex. (https://localhost:1111/user/10)
๐ ๏ธ ์ ํ์ด์ง ๋ง๋ค๊ธฐ
์์๋ก ํ์ด์ง ํ๋๋ฅผ ๋ง๋ค์ด๋ณด์.
pages ์๋์ about ํ์ด์ง๋ฅผ ์์๋ก ํด๋ณด๊ฒ ๋ค.
pages ์๋์ about.js ํ์ผ์ ๋ง๋ค์ด์ฃผ๊ณ ์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ค.
export default function About(){
return <h1>Made by Dochi</h1>
}
๊ณต์ ๋ฌธ์์๋ ์ด๋ ๊ฒ ์์ฑ๋์ด ์์ง๋ง
const About = () => {
return <h1>Made by Dochi</h1>
}
export default About;
์ด ๋ฐฉ์์ด ๋ ์ต์ํ๋ค.
(๋์ค์ PropTypes๊ฐ์๊ฑฐ ์ ์ฉํ๊ฑฐ๋ ํ ๋ ์ข ๋ ์์ํ๋ค.)
์ํผ ์ด๋ฆ์ ์๊ด ์์ง๋ง export default๋ก ๋ด๋ณด๋ด๊ธฐ๋ฅผ ํด์ค์ผ ํ๋ค.
์, ์ฐธ๊ณ ๋ก
import React from 'react';
์ด๊ฑฐ๋ฅผ ํ ํ์๋ ์๋ค.
ํจ์ํ์ผ๋ก ์์ฑํ ๋ ๋ฟ๋ง ์๋๋ผ React.Component ํด๋์ค๋ฅผ ์์๋ฐ์ ํด๋์ค ์ปดํฌ๋ํธ๋ก ๋ง๋ค ๋๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
class About extends React.Component{
...
}
ํ์ง๋ง ์๋์ ๊ฐ์ ๊ฒฝ์ฐ์๋ import๊ฐ ํ์ํ๋ค.
import { Component } from 'react';
class About extends Component{
...
}
Next.js์ ๊ณต๋ ์ ์์ธ Tim Neutkens๊ฐ ๋งํ๊ธธ,
Next.js automatically adds the React import when JSX is used indeed.
However keep in mind that we do still need to import React from 'react'
when the React variable is used.
"Next.js๋ JSX๊ฐ ์ค์ ๋ก ์ฌ์ฉ๋ ๋ ์๋์ผ๋ก React๋ฅผ ๊ฐ์ ธ์จ๋ค.
ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ React Variable์ ์ฌ์ฉํ ๋๋
์ฌ์ ํ import React from 'react' ๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ๊ธฐ์ตํด์ผ ํ๋ค." ๋ผ๊ณ ํ์์ผ๋
์๋ฌด๋ฆฌ ํ์ ์๋ค๊ณ ์๊ฐ๋๋๋ผ๋, ์ฃผ์ํ ํ์๋ ์์ ๊ฒ ๊ฐ๋ค.
(์ฌ์ค ๋ ๊ทธ๋ฅ ๋ชจ๋ ๊ณณ์ ์ด๋ค).
์ด๋ ๊ฒ ๋ง๋ค๊ณ
http://localhost:1111/about ์ ์ฃผ์์ฐฝ์ ์ ๋ ฅํ๊ณ ๋ค์ด๊ฐ ๋ณด๋ฉด
์ด๋ ๊ฒ ๋ฐ ๊ฒ์ด๋ค.
์ฌ๊ธฐ๊น์ง๊ฐ ํ์ด์ง์ ๋ํ ๊ธฐ๋ณธ ์ค๋ช ์ด๋ค.
๋ค์์๋ Link์ ๋ํ ๊ธ์ ํฌ์คํ ํ๊ฒ ๋ค.
'Next.JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Next.js] Next.js ์ด๋ฏธ์ง ์ ๋ก๋ ์คํจ(Module parse failed: Unexpected character) (0) | 2021.09.23 |
---|---|
[Next.js] Next.js์ Page๊ฐ ํ์ (0) | 2021.09.22 |
[Next.js] Next.js์ Link Component (0) | 2021.09.22 |
[Next.js] Next.js ์์ํ๊ธฐ (0) | 2021.09.22 |
[Next.js] Next.js๋? (0) | 2021.09.20 |