멈멈-토이프로젝트(next.js)2
다이어리 데이터 조회
순9
2024. 8. 30. 14:11
728x90
데이터를 어떻게 불러 올것인가
1. page.tsx를 클라이언트 컴포넌트로 설정해서 데이터를 불러 온다
- 아닌거 같다 그렇게 되면 SSG를 제대로 활용 하지 못하고 nextjs를 사용 하는 이점이 사라진다
2. page.tsx안에 클라이언트 컴포넌트로 props를 전달 해본다
- 가능 할거 같다 데이터를 클라이언트 컴포넌트로 전달하고
클라이언트 컴포넌트에서 리코일도 사용 하고 😀
export default async function Page() {
const fetchData:DataType[] = (await fetchDiaryData()) ?? [];
return (
<>
<div>
<h3>일기</h3>
<Link href="/main/diary/write">작성</Link>
</div>
<DiaryDataList fetchData={fetchData} />
</>
);
}
'use client'
import { DataType } from "@/lib/typs"
import { useEffect, useState } from "react"
export default function DiaryDataList({fetchData} : {fetchData:DataType[]}){
const [data, setData] = useState<DataType[]>([]);
useEffect(()=>{
setData(fetchData)
},[])
return(<div>
<ul>
{data.map((item)=> {return(<li key={item.id}>{item.content}</li>)})}
</ul>
</div>)
}
전달 받은 props 타입 연동하고
이렇게 데이터를 불러 옴!!