<template>
  <div>
    <div v-if='loading'>Loading...</div>
    <div v-else>
      <ul>
        <li v-for='item in items' :key='item.id'>{{ item.name }}</li>
      </ul>
    </div>
  </div>
</template>
<script>
import { ref, onMounted } from 'vue'

export default {
  setup() {
    const items = ref([])
    const loading = ref(false)

    const fetchItems = async () => {
      loading.value = true
      try {
        const response = await fetch('/api/items')
        const data = await response.json()
        items.value = data
      } catch (error) {
        console.error(error)
      } finally {
        loading.value = false
      }  
    }

    onMounted(() => {
      fetchItems()
    })

    return {
      items,
      loading
    }
  }
}
</script>
<p>在这个示例中,我们使用了 Vue3 的 <code>ref</code> 和 <code>onMounted</code> 函数来创建响应式的数据和触发数据的获取。在 <code>setup</code> 函数中,我们定义了 <code>items</code> 和 <code>loading</code> 变量,并且定义了 <code>fetchItems</code> 函数来获取数据。在组件挂载后,我们调用 <code>fetchItems</code> 函数来获取数据并更新 <code>items</code> 变量。在模板中,我们使用 <code>v-if</code> 和 <code>v-else</code> 来根据 <code>loading</code> 变量显示不同的内容。我们使用 <code>v-for</code> 来遍历 <code>items</code> 变量并显示列表项。在 <code>li</code> 元素中,我们使用 <code>:key</code> 属性来告诉 Vue 如何区分不同的列表项。注意,在实际开发中,我们需要根据实际情况调整代码来适应后台接口的返回数据。</p>
Vue3 调用后台接口示例代码 - 详细指南

原文地址: https://www.cveoy.top/t/topic/opLZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录