登录  /  注册
在Vue 3中如何在created钩子中进行API调用?
P粉744691205
P粉744691205 2023-11-04 08:48:38
[Vue.js讨论组]

长时间休息后回到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>


P粉744691205
P粉744691205

全部回复(2)
P粉004287665

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号