Library - 개발자가 library를 불러와서 내가 그것을 사용하여서 무엇을 만든다.
Framework - 나의 코드를 불러오는것(특정한 규칙을 따라서 특정한것을 해줘야하는경우도 있다.)
앱에 잇는 페이지들이 미리 렌더링이 된다.
나의 브라우저가 유저가 보는 UI를 만드는 모든것을 한다.
브라우저는 보통 빈화면, 태그를 가지고 오게되고.
브라우저가 자바스크립트를 다운받아서 client-side의 자바스크립트가 모든 UI를 만들게된다.
네트워크가 느려도 유저는 html을 볼수가있다.
미리 랜더링이 되게 되는것.
초기상태의 component로 된 서버에서 미리 생성된 HTML 페이지를 보게되고
react.js가 다운로드 된다음 동작자체도 잘되게된다.
module.css
(
.nav {}
)
import styles from "./XXXX.module.css"
<div className={styles.nav}>
<style jsx>{`
a{
color: white;
}
.active{
color: tomato;
}
`}</style>
컴포넌트에 독립적으로 적용되게 된다.
가장 먼저 자동적으로 확인하는 파일.
_app.js가 있는곳에는 모든 Global Styles를 임포트 할수있다.
하지만 다른 파일에서는 css를 할수없으며,
module.css로 import 시켜야한다
public 폴더에 접근하기위해서는 public 안에 vercel.svg라는 파일이 잇다고 가정할때
아래와 같이 접근경로를 절대경로나 상대경로로 나타내지않고 위와같이 나타내면 접근이 가능하다.
<img src="/vercel.svg">
next.config.js에 설정을 해주어 redirect를 하게 만들면
API KEY를 나타내지않아도 숨길수있게된다.
이함수를 사용하기전까지는 사전에 생성되는 함수에는 어느 loading같은것만 나타날뿐
다른 html이 나타나지 않았다.
이코드를 생성하고나니 html이 source로 나타나게 되었다.
이것은 api에서 데이터를 다 받아온뒤(React 코드가 실행이 끝난뒤) 화면을 나타내어 주는것이라고 볼수있다.
fecth, 데이터베이스 요청, API 불러오기, API key 사용하기등을 이곳에서 사용수있다.
백앤드에서 코드를 구현한다고 생각하면 되고,
export를 꼭 붙여주어야한다
export function getServerSideProps(){
}
Next.js는 pages안에다가 파일을 넣어주면 url이 된다.(Framework에서 지정해두었음)
Pages 폴더안에 원하는 URL의 파일 폴더를 만들어주면된다.
만약 moives/all라는 url을 지정해주려면
/movies 폴더안에 index.js 및 all.js를 만들어주면 둘다 파일을 url을 만들어줄수있다.
DynamicURL을 사용하기위해서는 /movies/123 이런식의 URL이 필요하다면
[id].js 이런구조의 그 폴더안에다가 만들어주면된다.
DynamicURL - [필요URL].js
navigate
Link로
router.push를 사용
router.push(
{
pathname : `/movies/${id}, //원하는 path
query: {
title: "potatos", //넘기기 원하는 데이터 query
},
`/movies/${id}` //url을 masking 시켜줄 옵션
};
)
[...id].js이라고 하게되면 뒤에 어떤 url들이 다 들어오더라도 파라미터로 들어오게 해줄수있다.