搜尋
問答 在Vue 3中如何在created鉤子中進行API呼叫?
在Vue 3中如何在created鉤子中進行API呼叫?
P粉744691205 2023-11-04 08:48:38 查看 797

0

長時間休息後回到vue。在我的解決方案中,我使用合成 api,在創建組件後我需要獲取一些數據,以便稍後顯示它。在我目前的解決方案中,模板是在調用之前渲染的。可能是愚蠢的錯誤,但我仍然無法弄清楚(在 vue 2.0 中很清楚 - 創建()鉤子)。

<template>
  <div>
      <div class="row mb-2 border-top border-bottom" v-for="pizza in pizzas" :key="pizza">
        <div class="col-sm-2">
          <img alt="Vue logo" src="../assets/logo.png" style="height: 100px; width: 135px;">
        </div>
        <div class="col-sm-2 mt-4">
          {{pizza.name}}
        </div>
        <div class="col-md offset-md-2 mt-4">
          price
        </div>
        <div class="col-sm-2 mt-4">
          <button class="btn btn-primary" type="submit">Add</button>
        </div>
      </div>
  </div>
</template>

<script setup>
import {api} from "@/api.js"

let pizzas = null

const GetPizzas = async ()=>{
    await api.get('pizza/pizzas/')
    .then(response=>{
        pizzas = response.data
    })
}
GetPizzas()
</script>


#
Your Answer
提交

2 個答案
0

您的解決方案應該如您所願。您的 api 在創建元件時調用,而不是在元件渲染之後調用,因為它沒有在 onMounted 掛鉤中調用。此外,你應該讓披薩具有反應性。

2023-11-05 00:15:26

提交

0

Composition API 中可用的鉤子清單如下:

#與Options API的建立最接近的是在setup()函數中執行程式碼。但是,為了避免使用 v-if="pizzas" 保護模板,您應該將其實例化為空數組。

而且,顯然,您希望它具有反應性,因此它是 ref([]),而不僅僅是 []

<script setup>

import { ref } from 'vue'
import { api } from '@/api.js'

const pizzas = ref([])

const GetPizzas = async () => {
  await api.get('pizza/pizzas/').then((response) => {
    pizzas.value = response.data
  })
}
GetPizzas()

</script>

註解

  • 可以保持不變,因為我們將 pizzas 初始化為空數組。如果您以錯誤的方式啟動它,則需要在根包裝元素上設定 v-if="pizzas" 保護。
  • ref 需要為其指派 .value
2023-11-05 00:12:20

提交

Hot Tools

vc9-vc14(32+64位元)運行庫合集(連結在下方)

vc9-vc14(32+64位元)運行庫合集(連結在下方)

phpStudy安裝所需運行函式庫集合下載

VC9 32位

VC9 32位

VC9 32位元 phpstudy整合安裝環境運行庫

php程式設計師工具箱完整版

php程式設計師工具箱完整版

程式設計師工具箱 v1.0 php整合環境

VC11 32位

VC11 32位

VC11 32位元 phpstudy整合安裝環境運行庫

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用