기록이 힘이다.

[감시자] 때때로 우리는 반응형 "사이드 이펙트"를 수행 본문

Vue

[감시자] 때때로 우리는 반응형 "사이드 이펙트"를 수행

dev22 2024. 1. 30. 20:47
728x90
 

Vue.js

Vue.js - The Progressive JavaScript Framework

vuejs.org

<script setup>
import { ref, watch } from 'vue'

const todoId = ref(1)
const todoData = ref(null)

async function fetchData() {
  todoData.value = null
  const res = await fetch(
    `https://jsonplaceholder.typicode.com/todos/${todoId.value}`
  )
  todoData.value = await res.json()
}

fetchData()

watch(todoId, fetchData)
</script>

<template>
  <p>할 일 id: {{ todoId }}</p>
  <button @click="todoId++" :disabled="!todoData">다음 할 일 가져오기</button>
  <p v-if="!todoData">로딩...</p>
  <pre v-else>{{ todoData }}</pre>
</template>

버튼을 클릭할 때마다, 다음 할 일을 가져오는 감시자를 구현