使用来自输入的值的 Axios 进行 API 调用,Vue.js 3

Posted

技术标签:

【中文标题】使用来自输入的值的 Axios 进行 API 调用,Vue.js 3【英文标题】:Making API call using Axios with the value from input, Vue.js 3 【发布时间】:2021-11-22 00:10:16 【问题描述】:

我正在使用此 API 制作应用程序。我坚持的一点是调用 API。如果我给出国家的名称,就会出现那个国家的数据。

喜欢,res.data.Turkey.All

我想通过输入获取值,并带上输入国家的数据。

我正在通过 searchedCountry 获得价值。但我不能使用这个值。我的 API 调用不会发生在我得到的值上。我从控制台收到未定义的反馈。

有没有办法使用从输入接收到的数据进行调用?


<template>
  <div>
    <input
      type="search"
      v-model="searchedCountry"
      placeholder="Search country"
    />
  </div>
</template>

<script>
import axios from 'axios';
import  ref, onMounted from 'vue';

export default 
  setup() 
    let data = ref([]);
    const search = ref();
    let searchedCountry = ref('');

    onMounted(() => 
      axios.get('https://covid-api.mmediagroup.fr/v1/cases').then((res) => 
        data.value = res.data.Turkey.All;
      );
    );

    return 
      data,
      search,
      searchedCountry,
    ;
  ,
;
</script>
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"&gt;&lt;/script&gt;

我正在使用 Vue.js 3

【问题讨论】:

【参考方案1】:

您的代码有一些问题:

您的 axios 调用仅在组件挂载时调用一次(此处请注意,如果您真的想做类似的事情,可以直接在 setup 方法中进行) 您没有将值从 searchedCountry 传递到 axios API 使用const 引用

我会在 searchedCountry 上使用手表;像这样的东西(我不知道 API 合同):

<template>
  <div>
    <input
      type="search"
      v-model="searchedCountry"
      placeholder="Search country"
    />
  </div>
</template>

<script>
import axios from 'axios';
import  ref, watch  from 'vue';

export default 
  setup() 
    const searchedCountry = ref('');
    const data = ref([]);

    watch(
        () => searchedCountry,
        (country) => axios.get(`https://covid-api.mmediagroup.fr/v1/cases/$country`).then((res) => data.value = res.data.Turkey.All);
    );

    return 
      data,
      searchedCountry,
    ;
  ,
;
</script>

【讨论】:

我们可以使用 Fetch 吗?我不能在方法之外使用data.value 得到的值,你有这方面的任何信息吗?我需要在设置中使用“lat, long”之类的值。 https://covid-api.mmediagroup.fr/v1/cases?country=$country 此 API 网址有效,谢谢您的回答

以上是关于使用来自输入的值的 Axios 进行 API 调用,Vue.js 3的主要内容,如果未能解决你的问题,请参考以下文章

使用 axios 调用 API 时如何防止 UI 冻结

使用Vue.JS / Axios和来自第三方API的数据填充DOM

在javascript和axios中为来自前端的每个api调用发送firebase身份验证令牌

处理来自前端的 API 调用的最佳方式

如何使用 axios 对 cloudinary 进行直接 api 调用?

使用 Axios 在 Redux 中处理 api 调用