uniapp 配置网络请求并使用请求轮播图

由于平台的限制,小程序项目中不支持 axios,而且原生的 wx.request() API 功能较为简单,不支持拦截器等全局定制的功能。因此,建议在 uni-app 项目中****使用 @escook/request-miniprogram 第三方包发起网络数据请求。

官方文档:@escook/request-miniprogram - npm (npmjs.com)

1、安装 相应的包

javascript 复制代码
1、安装一个npm包管理文件:
npm init -y

2、安装我们这个网络请求第三方工具
npm i @escook/request-miniprogram

2、导入 $http 对象

javascript 复制代码
import { $http } from '@escook/request-miniprogram'

uni.$http = $http

3、配置 请求根路径、请求拦截器

javascript 复制代码
// 2、配置请求根路径
$http.baseUrl = 'https://api-hmugo-web.itheima.net'

// 3、请求开始之前做一些事情
$http.beforeRequest = function (options) {
  uni.showLoading({
    title: '数据加载中...',
  })
}

// 4、请求完成之后做一些事情
$http.afterRequest = function () {
  uni.hideLoading()
}

4、使用 网络请求

先在pages下建立需要的文件夹,再在这些文件夹上右键点击新建页面,创建就行

html 复制代码
<template>
  <view>
    <!-- 轮播图区域 -->
    <swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" :circular="true">
      <!-- 循环渲染轮播图的 item 项 -->
      <swiper-item v-for="(item, i) in swiperList" :key="i">
        <view class="swiper-item">
          <!-- 动态绑定图片的 src 属性 -->
          <image :src="item.image_src"></image>
        </view>
      </swiper-item>
    </swiper>
  </view>
</template>

<script>
  export default {
    data() {
      return {
        // 1. 轮播图的数据列表,默认为空数组
        swiperList: [],
      }
    },
    onLoad() {
      // 2. 在小程序页面刚加载的时候,调用获取轮播图数据的方法
      this.getSwiperList()
    },
    methods: {
      // 3. 获取轮播图数据的方法
      async getSwiperList() {
        // 3.1 发起请求 【把data从res{data}中解构出来】
        const {
          data: res
        } = await uni.$http.get('/api/public/v1/home/swiperdata')
        console.log(res);
        // 3.2 请求失败
        if (res.meta.status !== 200) {
          return uni.showToast({
            title: '数据请求失败!',
            duration: 1500,
            icon: 'none',
          })
        }
        // 3.3 请求成功,为 data 中的数据赋值
        this.swiperList = res.message
      },
    },
  }
</script>

<style lang="scss">
  swiper {
    height: 330rpx;

    .swiper-item,
    image {
      width: 100%;
      height: 100%;
    }
  }
</style>
相关推荐
AnalogElectronic5 小时前
uniapp学习5,兼容微信小程序的俄罗斯方块游戏
学习·微信小程序·uni-app
名字很费劲7 小时前
vue项目,刷新后出现404错误,怎么解决
前端·javascript·vue·404
码界筑梦坊8 小时前
329-基于Python的交通流量数据可视化分析系统
开发语言·python·信息可视化·数据分析·django·vue·毕业设计
克里斯蒂亚诺更新10 小时前
微信小程序调用腾讯地图路线规划-注意点
微信小程序·小程序
AnalogElectronic11 小时前
uniapp学习6,滚动字幕播报
javascript·学习·uni-app
AnalogElectronic12 小时前
uniapp学习3,简易记事本
学习·uni-app
Можно12 小时前
uni-app 三端上线全流程指南:H5 / 小程序 / App 完整发布手册
小程序·uni-app
Thomas.Sir13 小时前
第五章:RAG知识库开发之【利用RAG知识库实现智能AI系统:从零构建企业级智能问答应用】
人工智能·python·vue·状态模式·fastapi·智能
Rysxt_14 小时前
Vue 3.4+ 实验性/新特性深度实战(2026版)
vue
2501_9151063214 小时前
Flutter 开发工具有哪些 跨平台项目开发与上架实操指南
android·flutter·ios·小程序·uni-app·iphone·webview