在 vue 中显示来自 rapidapi 的 API 数据

Posted

技术标签:

【中文标题】在 vue 中显示来自 rapidapi 的 API 数据【英文标题】:Display API data from rapidapi in vue 【发布时间】:2020-04-13 11:02:17 【问题描述】:

我正在使用 vueJS 和 rapidapi,我正在尝试使用 vue 显示来自 API 的数据并使用 JS Fetch 方法检索 API。但是,当我运行代码时,我得到的只是启动它的值(即:[])。

<template>
  <div>
    <div> chuckData </div>
  </div>
</template>

<script>
var chuck = [];
fetch("https://matchilling-chuck-norris-jokes-v1.p.rapidapi.com/jokes/random", 
  method: "GET",
  headers: 
    "x-rapidapi-host": "matchilling-chuck-norris-jokes-v1.p.rapidapi.com",
    "x-rapidapi-key": "***"
  
)
  .then(response => response.json()) // Getting the actual response data
  .then(data => 
    chuck = data;
  )
  .catch(err => 
    console.log(err);
  );

export default 
  data() 
    return 
      chuckData: chuck
    ;
  
;
</script>

我还尝试使用以下内容:

var chuck fetch("https://matchilling-chuck-norris-jokes-v1.p.rapidapi.com/jokes/random", ...

但我得到的只是 [object Promise] 没有我期望显示的数据。

我做错了什么?

【问题讨论】:

【参考方案1】:

您应该 define a method in the Vue instance 获取您的 API 数据。

像这样:

methods: 
    getRapidApiData() 
        //do the fetch.... etc
    

您可以去掉var chuck = [];,因为它不需要,并将chuck 的引用替换为this.chuckData

然后你可以像chuckData: []一样启动chuckData

【讨论】:

【参考方案2】:

最终的解决方案如下所示:

<div class="col-md-3" v-for="result in chuck">
         result
</div>

<script>
export default 
  data() 
    return 
      chuck: []
    ;
  ,
  mounted() 
    this.getData();
  ,
  methods: 
    getData() 
    fetch("https://matchilling-chuck-norris-jokes-v1.p.rapidapi.com/jokes/random", 
      method: "GET",
      headers: 
        "x-rapidapi-host": "matchilling-chuck-norris-jokes-v1.p.rapidapi.com",
        "x-rapidapi-key": "<API KEY>"
      
    )
      .then(response => response.json())
      .then(data => 
        this.chuck = data;
      );
    
  
;
</script>

谢谢!

【讨论】:

以上是关于在 vue 中显示来自 rapidapi 的 API 数据的主要内容,如果未能解决你的问题,请参考以下文章

RapidApi 测试返回 `kutz-log-nil-tenantid`

laravel 客户端 api 与 guzzle

作为提供者的 502 错误网关错误

当我在 rapidapi 上测试端点时无法滚动结果

如何在 <img> 标签中显示此 Instagram 图片

如何在 VBA Excel 中使用 RapidAPI(WhoIs 域名)