
map 반복문 사용시 key={유니크한 값}을 넣으면 좋다.
일반 이미지 넣는 법 : <img src="경로" />
최적화된 이미지 넣는 법 : 상단에서 Image를 import 해와서 사용! <Image />
lazy loading / 사이즈 최적화 / layout shift 방지
layout shift란 이미지 로딩이 늦어져 레이아웃이 밀려나는 현상
<Image /> 사용 제약 조건 : 이미지를 import 해서 경로를 넣어야 한다!
import 작명 from '/public/food0.png' / src={작명}
단점
반복문 안에서 다른 이미지를 보여줄 때는 복잡하다. / 외부 사이트의 이미지를 집어넣을 때도 어려운 점이 있다.
외부 이미지를 넣을 때는?
<Image src="외부 링크" width={200} height={200} /> 이렇게 width, height 속성이 필요하다!
그리고 next.config.js 셋팅도 필요하다!
- 이런 식으로...
const nextConfig = { experimental: { appDir: true, }, images: { remotePatterns: [ { protocol: 'https', hostname: '링크', port: '', pathname: '/my-bucket/', }, ], }, }최적화는 다 만든 후에 하는 것이 좋다!
<img src={백틱/food${i}.png백틱} />function 작명 () {}return (축약할 긴 HTML)<작명 /> 사용function CartItem() { return ( <div className="cart-item"> <p>상품명</p> <p>$40</p> <p>1개</p> </div> ); }component도 map 반복문 사용이 가능함
component 단점 : component 끼리의 데이터 공유가 귀찮다.
보통 재사용이 잦은 UI를 component로 만들어주면 좋다.
server component와 client comoponent가 있다!
아무데나 대충 만든 것은 server component
파일 맨 위에 'use client'를 넣고 만든 것은 client component
server component와 client comoponent의 차이
server component는 html에 자바스크립트 기능 넣기 불가능!
onClick={}같은 기능을 사용할 수 없다.useState나useEffect등도 사용 불가!
반면에 client component의 경우는 사용이 가능하다! (자유롭게 사용 가능!)
그렇다면 client component가 좋은 것인가? : 좋다.
server component의 장점 : 로딩 속도가 매우 빠름 / 검색엔진 노출 유리
client component의 경우는 자바스크립트가 많이 필요하고 hydration이 필요해로딩 속도가 느리다. ( hydration : html 유저에게 보낸 후, 자바스크립트로 html을 다시 읽고 분석하는 일 )
큰 페이지는 server component / JS 기능이 필요한 부분은 client component 추천!
해당 기능이 필요한 부분만 client component로 만들어 집어 넣는 방식으로...
export default 변수함수명을 사용해 내보낸다.import 작명 from './data.js'./ 부터 시작하는 것이 좋다.export {변수 / 함수명}import {age, name} from './data.js'props는 함수 파라미터와 비슷하다.
props 문법
매번 약간 다른 내용으로 컴포넌트를 만들고 싶을 때 사용
부모 -> 자식 데이터 전송은 props!
<자식component 작명="전할데이터" />: 작명이라는 이름으로 자식에게 전달됨- 자식은
props.작명사용 /funcrion CartItem(props){}
- 데이터가 많은 컴포넌트에서 필요하면 최상위 부모 컴포넌트에 보관해야 좋다!
왜냐하면 부모 -> 자식 전송은 가능하지만, 자식1 -> 자식2 혹은 자식 -> 부모 전송은 불가능하기 때문에!
fetch()로 DB 데이터를 가져온다.-
fetch()전역
fetch()메서드는 네트워크에서 리소스를 취득하는 절차를 시작하고, 응답이 사용 가능해지면 이행하는 프로미스를 반환한다.