OPEN HYPER STEP
← 목록으로 (Vue 3)
VUE · 22 / 34
vue
CHAPTER 22 / 34
읽기 약 2
FUNCTION

Vue 3 실전: API 데이터 페칭


핵심 개념

onMounted와 ref로 API 데이터를 가져옵니다. loading, error, data 세 가지 상태를 관리합니다. 페칭 로직을 지우며 데이터 로딩이 어떻게 멈추는지 확인하십시오.

코드 분석
VUE📋 코드 (33줄)


const{createApp,ref,onMounted}=Vue;
createApp({
  setup(){
    const posts=ref([]);const loading=ref(false);const error=ref(null);
    const fetchData=async()=>{
      loading.value=true;error.value=null;
      try{
        const res=await fetch('https://jsonplaceholder.typicode.com/posts?_limit=3');
        if(!res.ok)throw new Error('HTTP '+res.status);
        posts.value=await res.json();
      }catch(e){error.value=e.message;}
      finally{loading.value=false;}
    };
    onMounted(fetchData);
    return{posts,loading,error,fetchData};
  },
  template:`<div>
    <div style='display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;'>
      <div style='color:#10b981;font-size:9px;letter-spacing:0.2em;'>API FETCH</div>
      <button @click='fetchData' style='background:#333;color:#888;border:none;padding:4px 10px;cursor:pointer;font-size:10px;font-family:monospace;'>RELOAD</button>
    </div>
    <div v-if='loading' style='color:#f59e0b;font-size:11px;'>LOADING...</div>
    <div v-else-if='error' style='color:#10b981;font-size:11px;'>ERROR: {{error}}</div>
    <div v-else>
      <div v-for='p in posts' :key='p.id' style='padding:8px;background:#0a0a0a;margin-bottom:6px;'>
        <div style='color:#f59e0b;font-size:10px;margin-bottom:4px;'>#{{p.id}} {{p.title.substring(0,30)}}...</div>
        <div style='color:#555;font-size:10px;'>{{p.body.substring(0,60)}}...</div>
      </div>
    </div>
  </div>`
}).mount('#api-out');

AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

이 Vue 3 'Vue 3 실전: API 데이터 페칭' 코드에서
반응성 시스템 관련 버그와 watch 누수를
찾아서 수정해줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

'Vue 3 실전: API 데이터 페칭'를 활용한 실전 Vue 컴포넌트를
Composition API + script setup 문법으로 만들어줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

이 Vue 'Vue 3 실전: API 데이터 페칭' 사용 패턴 전체를 분석하고
번들 크기·렌더링 성능·반응성 효율을
종합 점검해줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

Vue 3 'Vue 3 실전: API 데이터 페칭'가 React의 대응 기능 대비
어떤 장단점이 있는지 솔직하게 평가하고
실무 선택 기준을 알려줘.

⭐ 이것만 기억하세요
Vue 3 실전: API 데이터 페칭 이 3가지만 확실히 잡으세요
1.onMounted에서 fetch만 호출하면 로딩 상태, 에러 처리, 재시도 로직이 모두 빠져서 UX가 불안정합니다
2.loading·data·error ref 3개로 상태를 관리하고, Composable로 추출하면 여러 컴포넌트에서 재사용 가능합니다
3.다음 챕터에서 Pinia 없이 Composable만으로 글로벌 상태를 관리하는 패턴을 구현합니다


공유하기
진행도 22 / 34