-
컴포넌트에서 이미지를 출력멈멈-토이프로젝트(next.js)2 2024. 7. 24. 16:09728x90
1. 클라이언트 컴포넌트에서 이미지 출력 하기
https://nextjs.org/docs/pages/building-your-application/data-fetching/client-side
- 함수만 모아 놓은 파일.ts
import { createClient } from "@/utils/supabase/client"; const supabase = createClient(); export async function fetchImageUrl(){ const { data } = await supabase.storage .from("img") .getPublicUrl("select/test1.png"); return data.publicUrl; };
- 클라이언트 컴포넌트(페이지 라우터일 경우swr사용)
'use client'; import useSWR from 'swr' import { fetchImageUrl } from '@/lib/function'; export default function LoginPageImg() { const fetcher = () => fetchImageUrl(); const { data, error } = useSWR('image', fetcher); if (error) return <div>Failed to load</div> if (!data) return <div>Loading...</div> return ( <div> <img src={data} alt='이미지'/> </div> ) }
클라이언트 컴포넌트에서 이미지를 출력 했는데 서버컴포넌트로 변경 했음
클라이언트 컴포넌트가 많으면 nextjs를 한 의미가 없는거 같아서
2. 서버 컴포넌트
형식1
- 함수만 모아 놓은 파일.ts 동일
import { fetchImageUrl } from '@/lib/function'; export default async function LoginPageImg() { const fetcher = await fetchImageUrl(); return ( <div> <img src={fetcher} alt='이미지'/> </div> ) }
형식2
- https://nextjs.org/docs/pages/building-your-application/data-fetching/get-server-side-props
'멈멈-토이프로젝트(next.js)2' 카테고리의 다른 글
클라이언트 컴포넌트에서 서버 컴포넌트 넣기 (0) 2024.08.12 로그인 uid 리코일 과 세션 (0) 2024.08.07 카카오 로그인 적용 하기 (0) 2024.08.06 세팅 (0) 2024.07.22 화면, 기능 추가 (0) 2024.06.14