pages
폴더에 원하는 js문서를 만들어주면 됨. 앞서 리액트 라이브러리에서 해주던 세팅들이 추상화된것. pages rules
export default function 함수명
을 js문서 앞단에 꼭 넣어줄 것
js문서의 이름은 url의 이름이 된다.
앱의 홈은 index.js에서 나온다
jsx문서가 아니더라도 return이하에 html 요소 활용 가능
기존 리액트의경우, user의 브라우저는 javascript, react를 받아 천천히 HTML로 렌더링하기 시작함. 느린 인터넷 환경에서는 흰 화면부터 천천히 나타나게됨.
Next의 경우, 서버에서 미리 렌더링 후 HTML을 짜놓고 user에게 바로 보여준다. SEO에도 좋고, user는 미리 만들어진 HTML을 미리 보고있다가 추후에 연결된 react앱을 활용할 수 있어 사용성도 좋아짐.
<a>
태그 대신 <Link>
를 사용합시다<useLocation>
대신 <useRouter>
활용해서 화면정보 가져오기, 화면 이동 모두 가능합니다 임의지정이름.module.css
라는 css파일을 만들고 스타일을 작성합니다 style01{
background-color : blue;
}
style02{
background-color : red;
}
import sytles from "./임의지정이름.module.css";
먼저 상단에서 import해주시고<div className={styles.style01}>
통상의 className="XXX"이 아니라 위와같이 해주셔야해요 <Link href='/about'>
<div className={router.pathname === '/about' ? 'active' : 'inactive'}>
About
</div>
</Link>
<style jsx>{`
nav {
display: flex;
justify-content: space-between;
background-color: gray;
}
.active {
color: white;
}
.inactive {
color: black;
}
`}</style>
<style jsx>
내에 중괄호&백틱으로 감싼 css를 적용하여 해당 문서내의 스타일을 간편하게 바꿀 수 있음
<style jsx global>
이라고 표시하면 전역에서 활용가능한 스타일이 됨.
네 의무입니다. 정식 명칭은 App Component지요. 딱 저이름을 쓰기로 우리모두 약속했어요. Next JS는 _app.js
를 먼저 확인한 후에 다른 것들을 렌더링할겁니다..
기본적으로 아래의 것들이 먼저 들어가야하고
export default function 앱이름({Component, pageProps}) {
return (
<>
<Component {...pageProps}>
</>
)
}
그 윗단에서, 전역에서 사용할 라이브러리, global.css 등등을 import해줍니다.
return 이하에서는 전역에서 사용할 <style jsx global>
등도 선언해주고 nav도 넣고 다 넣어서 탬플릿처럼 사용가능합니다.