前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【微信小程序】动态API+swiper组件实现轮播图+es6的promise

【微信小程序】动态API+swiper组件实现轮播图+es6的promise

作者头像
软件小生活
发布2021-08-16 11:32:15
1.5K0
发布2021-08-16 11:32:15
举报
文章被收录于专栏:软件小生活

动态API+swiper组件实现轮播图

1. 获取轮播图数据 接口:https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata

pages/index/index.js

代码语言:javascript
复制
Page({
  data: {
    // 轮播图数组
    swiperList: []
  },
  
  onLoad: function (options) {
    // 发送异步请求获取轮播图数据
    wx.request({
      url: 'https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata',
      success: (result) => {
        this.setData({
          swiperList: result.data.message
        })
      }
    });
  },

});

2. 加载轮播图数据 使用swiper组件实现轮播图

微信小程序官方文档:scroll-view组件

pages/index/index.wxml

代码语言:javascript
复制
<view class="pyg_index">
  <!-- 轮播图开始 -->
  <view class="index_swiper">
    <swiper autoplay="{{true}}" indicator-dots="{{true}}" circular="{{true}}">
      <swiper-item wx:for="{{swiperList}}" wx:key="goods_id">
        <navigator>
          <image mode="widthFix" src="{{item.image_src}}"></image>
        </navigator>
      </swiper-item>
    </swiper>
  </view>
  <!-- 轮播图结束 -->
</view>

问题:

① swiper标签存在默认宽度和高度 100% * 150px

② image标签也存在默认宽度和高度 320px * 240px

解决:

① 先看一下原图的宽高 750px * 340px

② 让图片的高度自适应,宽度等于100%

③ 让swiper标签的宽高变成与图片的宽高一样

④ image标签 mode属性 渲染模式

让image标签的宽高和图片的宽高等比例变化 mode="widthFix"

pages/index/index.less

代码语言:javascript
复制
.index_swiper {
  swiper {
    width: 750rpx;
    height: 340rpx;
    image {
      width: 100%;
    }
  }
}

pages/index/index.wxss

代码语言:javascript
复制
.index_swiper swiper {
  width: 750rpx;
  height: 340rpx;
}
.index_swiper swiper image {
  width: 100%;
}

3. 发送请求代码的优化 问题:发送请求成功后再发送多次请求 解决:将原生请求修改为es6的promise request/index.js

代码语言:javascript
复制
export const request = (params) => {
  return new Promise((resolve, reject) => {    
    wx.request({
      ...params,
      success:(result)=>{
        resolve(result);
      },
      fail:(err)=>{
        reject(err);
      }
    });
  })
}

引入用来发送请求的方法:import { } from "module"; “module” 路径一定要补全 "../../request/request.js" pages/index/index.js

代码语言:javascript
复制
// 引入用来发送请求的方法
import { request } from "../../request/request.js";

Page({
  data: {
    // 轮播图数组
    swiperList: []
  },
  
  onLoad: function(options) {
    this.getSwiperList();
  },
  
  // 获取轮播图数据
  getSwiperList() {
    request({
      url: "https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata"
    }).then(result => {
      this.setData({
        swiperList: result.data.message
      })
    })
  },
  
}
              
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件小生活 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档