4.Vue-Vue调用第三方接口

news/2025/2/21 7:30:35/

题记

         用vue调用第三方接口,以下是全部代码和操作流程。

寻找第三方接口网站 

        推荐:免费API - 提供免费接口调用平台 (aa1.cn)

        下面的代码以下图中的接口为例 

         

安装axios模块 

        在终端输入以下命令: 

         npm install axios

 调用第三方接口代码

 调用不需要设置参数的接口

        TestView.vue文件如下: 

<template>

  <div >

    <ul>

      <!--<li v-for="item in items" :key="item.id">{{ item }}</li>-->

      <!--使用了Vue的指令v-html,它会将组件的data属性的值作为HTML内容进行渲染-->

      <div v-html="data"></div>

      <!--使用了Vue的插值语法{{ }},它会将组件的data属性的值作为文本进行渲染-->

      <!--没有去掉p标签-->

      <div>{{ data }}</div>

    </ul>

  </div>

</template>

<script>

// 导入axios模块,使用axios来发送HTTP请求了

//export default是用于导出模块的语法

import axios from 'axios';

// const data = ref()

// const  items = ref([])

export default {

  //data()函数是用于定义组件的数据属性的方法

  //data属性被初始化为空字符串,可以用来存储数据

  data() {

    return {

      //items: [],

      data:''

    };  

  },

  //mounted()是一个生命周期钩子函数,它会在组件被挂载到DOM后调用

  mounted() {

    this.fetchData();

  },

  //methods对象用于定义组件的方法

  //fetchData()方法使用axios库发送一个GET请求到指定的URL

  //通过Promise的.then()方法处理请求成功的响应,this.data = response.data将响应的数据设置到组件的data属性中

  //如果请求失败,将通过.catch()方法捕获错误,并通过console.error()方法将错误打印到控制台。

  methods: {

    fetchData() {

      axios.get('https://v.api.aa1.cn/api/yiyan/index.php')

        .then(response => {

          // 将返回的数据设置到items数组

          // this.items = response.data;

          this.data = response.data

          // document.body.innerHTML = this.items,用这种方式也可以去掉返回内容中的p标签

          console.log(response.data)

        })

        .catch(error => {

          console.error(error);

        });

    }

  }

}

</script> 

<template><div ><ul><!--<li v-for="item in items" :key="item.id">{{ item }}</li>--><!--使用了Vue的指令v-html,它会将组件的data属性的值作为HTML内容进行渲染--><div v-html="data"></div><!--使用了Vue的插值语法{{ }},它会将组件的data属性的值作为文本进行渲染--><!--没有去掉p标签--><div>{{ data }}</div></ul></div>
</template><script>
// 导入axios模块,使用axios来发送HTTP请求了
// export default是用于导出模块的语法
import axios from 'axios';
// const data = ref()
// const  items = ref([])
export default {//data()函数是用于定义组件的数据属性的方法//data属性被初始化为空字符串,可以用来存储数据data() {return {//items: [],data:''};  },//mounted()是一个生命周期钩子函数,它会在组件被挂载到DOM后调用mounted() {this.fetchData();},//methods对象用于定义组件的方法//fetchData()方法使用axios库发送一个GET请求到指定的URL//通过Promise的.then()方法处理请求成功的响应,this.data = response.data将响应的数据设置到组件的data属性中//如果请求失败,将通过.catch()方法捕获错误,并通过console.error()方法将错误打印到控制台。methods: {fetchData() {axios.get('https://v.api.aa1.cn/api/yiyan/index.php').then(response => {// 将返回的数据设置到items数组// this.items = response.data;this.data = response.data// document.body.innerHTML = this.items,用这种方式也可以去掉返回内容中的p标签console.log(response.data)}).catch(error => {console.error(error);});}}}
</script>
调用需要设置参数的接口 

        TestView2.vue文件如下:

<template>

  <div >

    <ul>

    <!--使用Vue的事件修饰符@submit.prevent,表示在表单提交时会触发名为handleSubmit的方法。

      prevent修饰符用于阻止表单默认的提交行为,以便可以使用自定义的逻辑来处理提交事件。-->

    <form @submit.prevent="handleSubmit">

      <!--使用Vue的双向绑定指令v-model,将输入框的值绑定到了组件的message属性。-->

      <input type="text" v-model="message" placeholder="请输入内容">

      <input type="number" v-model="type" placeholder="请输入类型">

      <button type="submit">提交</button>

    </form>

      {{ message }}

      <!--v-for="(item, index) in data.data"是一个指令,表示要对data.data数组进行循环遍历。

        在每次循环中,item表示当前项的值,index表示当前项的索引。

        :key="item.id"是一个特殊的属性绑定语法,用于为循环渲染的每个项提供一个唯一的标识符。-->

      <li v-for="(item,index) in data.data" :key="item.id">

          {{index + 1 }}

          {{ item.riqi }}

          {{ item.wendu }}

          {{ item.tianqi }}

      </li>

      </ul>

  </div>

</template>

<script>

import axios from 'axios';

// const data = ref()

// const  items = ref([])

export default {

  data() {

    return {

      //items: [],

      data:'',

      message: '',

      type: '1',

    };

   

  },

  mounted() {

    this.handleSubmit()

  },

  methods: {

    handleSubmit() {

      axios.get('https://v.api.aa1.cn/api/api-tianqi-3/index.php', {

          // 使用 axios.get 发送一个 GET 请求,通过第二个参数的 params 属性传递了这个参数对象,

          // 将 msg 和 type 作为查询参数传递给服务器。

          params: {

              msg: this.message,

              type: this.type

          },

          })

          .then(response => {

              // 在这里处理返回的数据

              this.data=response.data;

              console.log(response.data);

             

          })

          .catch(error => {

              // 在这里处理错误

              console.error(error);

             

          });

    }

  }

}

</script>

<template><div ><ul><!--使用Vue的事件修饰符@submit.prevent,表示在表单提交时会触发名为handleSubmit的方法。prevent修饰符用于阻止表单默认的提交行为,以便可以使用自定义的逻辑来处理提交事件。--><form @submit.prevent="handleSubmit"><!--使用Vue的双向绑定指令v-model,将输入框的值绑定到了组件的message属性。--><input type="text" v-model="message" placeholder="请输入内容"><input type="number" v-model="type" placeholder="请输入类型"><button type="submit">提交</button></form>{{ message }}<!--v-for="(item, index) in data.data"是一个指令,表示要对data.data数组进行循环遍历。在每次循环中,item表示当前项的值,index表示当前项的索引。:key="item.id"是一个特殊的属性绑定语法,用于为循环渲染的每个项提供一个唯一的标识符。--><li v-for="(item,index) in data.data" :key="item.id">{{index + 1 }} {{ item.riqi }}{{ item.wendu }}{{ item.tianqi }}</li></ul></div>
</template><script>
import axios from 'axios';
// const data = ref()
// const  items = ref([])
export default {data() {return {//items: [],data:'',message: '',type: '1',};},mounted() {this.handleSubmit()},methods: {handleSubmit() {axios.get('https://v.api.aa1.cn/api/api-tianqi-3/index.php', {// 使用 axios.get 发送一个 GET 请求,通过第二个参数的 params 属性传递了这个参数对象,// 将 msg 和 type 作为查询参数传递给服务器。params: {msg: this.message,type: this.type},}).then(response => {// 在这里处理返回的数据this.data=response.data;console.log(response.data);}).catch(error => {// 在这里处理错误console.error(error);});}}
}
</script>

 执行程序

        可以参考在vue中搭建路由:3.Vue-在Vue框架中搭建路由-CSDN博客 

        成功访问到网页后,如果没有显示,需要多刷新几次,属于网络问题。如果一直没有请求成功,则是请求次数太多,官方不会返回响应,需要等待一段时间再次发起请求,或者自行更换接口进行测试

 展示图 

 

后记 

        觉得有用可以点赞或收藏! 


http://www.ppmy.cn/news/1158989.html

相关文章

OpenCV4 :并行计算cv::parallel_for_

OpenCV4 &#xff1a;并行计算cv::parallel_for_ 在计算机视觉和图像处理领域&#xff0c;OpenCV&#xff08;开源计算机视觉库&#xff09;是一个非常强大和广泛使用的库。随着图像分辨率的提高和计算任务的复杂度增加&#xff0c;实时处理变得越来越困难。为了解决这个问题&…

ChatGPT教你5分钟解锁国际象棋技能

国际象棋是一种很好玩的棋类游戏&#xff0c;走法和规则与中国象棋有所区别。如果想要快速入门&#xff0c;可以把ChatGPT当做私人教练&#xff0c;提出这些问题&#xff1a; ●作为零基础的初学者&#xff0c;学习国际象棋的最佳方法是什么&#xff1f;如何快速入门&#xff…

flutter开发实战-下拉刷新与上拉加载更多实现

flutter开发实战-下拉刷新与上拉加载更多实现 在开发中经常遇到列表需要下拉刷新与上拉加载更多&#xff0c;这里使用EasyRefresh&#xff0c;版本是3.3.21 一、什么是EasyRefresh EasyRefresh可以在Flutter应用程序上轻松实现下拉刷新和上拉加载。它几乎支持所有Flutter Sc…

计网面试复习自用

五层&#xff1a; 应用层&#xff1a;应用层是最高层&#xff0c;负责为用户提供网络服务和应用程序。在应用层&#xff0c;用户应用程序与网络进行交互&#xff0c;发送和接收数据。典型的应用层协议包括HTTP&#xff08;用于网页浏览&#xff09;、SMTP&#xff08;用于电子邮…

游戏缺少dll文件用什么修复?dll多种修复方法指南

在玩游戏时&#xff0c;有时候可能会遇到游戏缺少dll文件的问题。dll文件是动态链接库的缩写&#xff0c;它包含了一些函数和资源&#xff0c;游戏运行需要依赖这些文件。如果缺少了某个dll文件&#xff0c;游戏就可能无法正常运行。那么游戏缺少dll文件用什么修复&#xff1f;…

关于React

当今的Web开发世界中&#xff0c;React已经成为前端开发的主要工具之一。它的强大和灵活性使开发人员能够构建复杂的用户界面&#xff0c;同时保持代码的可维护性。本篇博客文章将深入探讨React&#xff0c;包括其核心概念、组件化开发、状态管理、性能优化和生态系统。 1. Re…

C++产生未定义的行为的原因分析

前言 最近一直在做QT开发&#xff0c;编程环境是VS2017和QT5.11.2 经常遇到的问题就是&#xff0c;在VS中调试程序&#xff0c;前面都是正常运行的&#xff0c;但是当关闭窗口&#xff0c;退出程序的时候&#xff0c;VS会抛出一个异常 “未加载ntdll.pdb&#xff0c;触发了一…

videojs和videojs-markers

文章目录 videojs安装使用videojs常用选项video.js特定选项 videojs-markers安装使用说明方法 videojs video.js是一款基于HTML5的网络视频播放器。它支持HTML5和Flash视频&#xff0c;以及YouTube和Vimeo&#xff08;通过插件&#xff09;&#xff0c;Video.js 自动检测浏览器…