Vue - Data Provider Component Patterns

김민재·2023년 1월 20일
0

Data Provider Component Patterns

<script setup lang="ts">
import { getCurrentInstance, ref, useSlots  } from "vue";

const props = defineProps<{ url: string }>();
const slots = useSlots();
let res = ref("");
let loading = ref(true);

fetch(props.url)
  .then((response) => response.json())
  .then((response) => {
    res.value = response;
    loading.value = false;
  });
getCurrentInstance().render = () =>
  slots.default?.({ res: res.value, loading: loading.value });
</script>
<template>
  <FetchJson url="url">
    <template v-slot="{ res: response, loading }">
      <div v-if="loading">
        <h1>loading...</h1>
        {{ loading }}
      </div>
      <div v-if="response && response[0]">
        <img :src="response[0].url" alt="" srcset="" />
      </div>
    </template>
  </FetchJson>
</template>
profile
자기 신뢰의 힘을 믿고 실천하는 개발자가 되고자합니다.

0개의 댓글