uniapp实战仿写网易云音乐(二)—promise接口请求的封装和主页功能的实现,组件封装
创始人
2024-04-22 14:29:46
0

文章目录

    • 前言
    • promise请求接口的封装
    • 主入口功能的实现:
    • 推荐歌单模块
    • 新碟新歌模块
    • 精选视频模块
    • 最后

前言

本篇文章继续完成上篇文章的部分,主要实现prromise接口的封装和首页主入口的实现

promise请求接口的封装

在上篇文章中请求我们是这样写的:

methods: {getBanner() {uni.request({url: 'http://localhost:3000/banner',method: 'GET',success:(res)=>{this.swiper = res.data.banners;}})}
}

但实际开发中,接口非常多,这样又不方便管理,所以我们通常会进行接口的封装
先新建util文件夹中request.js文件,在文件中进行promise的封装:
在这里插入图片描述

封装里面的状态码根据实际情况写,我这里写简单写了几个

/*** 请求组件封装* @param {Object} url 请求地址 /banner* @param {Object} data 请求参数* @param {Object} method 请求的方法* @param {Object} contentType 请求内容类型 1=json  2=form*/
function request({url, data, method="GET", contentType=1}) {let header = {'content-type': contentType === 1 ? 'application/json' : 'application/x-www-form-urlencoded'}let baseUrl = "http://localhost:3000";return new Promise((resolve, reject)=>{uni.request({url: baseUrl + url,data,method,header,success: (res) => {if (res.statusCode === 200) {//请求成功resolve(res.data);} else if (res.statusCode === 401) {uni.showToast({icon: 'none',title: "未登录或登录状态已超时",duration: 1500});} else if (res.statusCode === 405) {uni.showToast({icon: 'none',title: "请求方法错误",duration: 1500});} else {uni.showToast({icon: 'none',title: "请求错误:" + res.statusCode,duration: 1500});}},fail: (err) => {console.log("err:", err)uni.showToast({icon: 'none',title: err.errMsg,duration: 1500});reject(err);}})})
}
export default {request}

然后我们可以新建api文件夹新建index.js文件在里面进行api的封装
在这里插入图片描述

import request from "@/utils/request.js"//轮播请求接口
export function apiGetBanner(data) {return request.request({url: '/banner',method: 'GET',data})
}

封装之后,在我们需要的页面就可以直接引入api进行使用,例如:


主入口功能的实现:

下面来实现这一块的内容,首页的主入口部分
在这里插入图片描述
这一块的内容基本不会改动,所以直接用图片样式进行编写
这主要是把本地的图片渲染出来,css部分直接用flex布局拿很简单。

{{item.name}}

推荐歌单模块

推荐歌单这块直接抽离成一个组件进行编写
在这里插入图片描述
在components文件夹下新建文件,编写歌单的组件

在这里插入图片描述
css样式我就不贴了,主要是写好组件,然后定义props接受父组件传过来的值


在父组件中:


进行数据的请求,这里需要把请求数据中的播放量进行一个格式化

//推荐歌单
getRecommendSongs(){const params = {limit: 6}apiGetRecommendSongs(params).then(res => {//格式化播放量数据const formatCount = data=>{let tmp = data;if (data > 10000) {tmp = (parseInt(data/10000) + '万');}return tmp}this.recommendSongs = res.result;//格式化this.recommendSongs.forEach(item => {item.playCount = formatCount(item.playCount);})})
},

新碟新歌模块

这一块要实现一个可以点击切换的效果:
在这里插入图片描述


新碟新歌{{item.name}}{{item.artist.name}}

这里就是通过点击切换判断是新歌还是新碟,然后进行请求数据

// 切换新碟新歌
switchTab(type) {this.newType = type;// 设定开始start和结束end的位置let temp = {s: type == 1 ? 0 : 3,                  e: type == 1 ? 3 : 6}this.latestAlbum = this.latestTempAlbum.slice(temp.s, temp.e);
},
//新碟新歌  把前3首歌--新碟  后3首--新歌
getLatestAlbum() {apiGetTopAlbum().then(res=>{//将所有的数据暂存在临时变量中this.latestTempAlbum = res.albums;//取前3个作为第一类的数据展示this.latestAlbum = res.albums.slice(0, 3);})
},

精选视频模块

视频这款暂时做了封面,没有做视频播放功能,直接渲染封面:
在这里插入图片描述


精选视频更多{{item.title}}

//精选视频getRelatedVideo() {const params = {id: 32154      //根据资源id查询}apiGetRelatedVideo(params).then(res=>{// console.log(res)this.relatedVideo = res.data;})}

最后

到此首页基本实现了
在这里插入图片描述
后续会继续完成其他页面,持续更新,感兴趣可以订阅本专栏

在这里插入图片描述

相关内容

热门资讯

安卓se系统怎么启用,确保应用... 你有没有发现,你的安卓手机最近有点儿“懒”呢?运行速度慢,反应迟钝,是不是想给它来个“大变身”呢?别...
微软怎么使用安卓系统,技术融合... 你有没有想过,那个以Windows系统著称的微软,竟然也会和安卓系统玩起“亲密接触”?没错,就是那个...
安卓系统耗电特别快,快速诊断与... 手机电量总是不够用?安卓系统耗电特别快,是不是你也遇到了这样的烦恼?别急,今天就来跟你聊聊这个话题,...
安卓机 桌面 系统菜单,功能解... 你有没有发现,你的安卓手机桌面系统菜单,其实就像一个隐藏的宝藏库呢?里面藏着各种各样的功能,等着你去...
安卓ios系统怎么安装,安卓与... 你有没有想过,你的手机里那些好玩的应用是怎么来的呢?是不是觉得安装个软件就像变魔术一样简单?其实,这...
珍奥助手安卓系统下载,轻松体验 你有没有听说最近有个超级好用的助手软件——珍奥助手?没错,就是那个能让你手机生活变得更加便捷的小帮手...
安卓换ios系统.数据,数据迁... 你有没有想过,手机系统就像是我们生活中的衣服,有时候换一件新衣服,整个人都焕然一新呢?没错,今天咱们...
安卓系统提示怎么关,轻松关闭功... 手机屏幕上突然弹出一个安卓系统的提示,让你不禁皱起了眉头。别急,别慌,今天就来手把手教你如何轻松关闭...
安卓系统如何刷回flyme系统... 你是不是也和我一样,对安卓手机的Flyme系统情有独钟呢?有时候,因为一些原因,我们可能需要将手机刷...
手机订餐系统源码安卓,基于手机... 你有没有想过,每天忙碌的生活中,点外卖已经成为了一种不可或缺的享受?而这一切的背后,离不开那些默默无...
顾问营销系统安卓版,助力企业高... 你有没有想过,在这个信息爆炸的时代,如何让你的产品在众多竞争者中脱颖而出呢?别急,今天我要给你介绍一...
安卓系统连接雅马哈音箱,打造个... 你有没有想过,家里的安卓手机和雅马哈音箱也能来个甜蜜的“牵手”呢?没错,今天就要来给你揭秘,如何让这...
安卓系统文件日志查看,揭秘系统... 手机里的安卓系统文件日志,听起来是不是有点儿高深莫测?别担心,今天我就要带你一探究竟,揭开这些神秘日...
努比亚升级安卓p系统,畅享智能... 你知道吗?最近手机界可是热闹非凡呢!努比亚这个品牌,竟然悄悄地给他们的手机升级了安卓P系统。这可不是...
仿苹果装安卓系统,揭秘仿苹果装... 你有没有想过,如果你的苹果手机突然变成了安卓系统,那会是怎样的场景呢?想象你那熟悉的iOS界面,突然...
安装安卓13子系统,全新功能与... 你听说了吗?安卓13子系统终于来了!这可是安卓系统的一大革新,让我们的手机体验更加丰富多元。今天,就...
安卓系统内核日志保存,深度洞察... 你有没有想过,当你手机里的安卓系统在默默运行时,它其实就像一个勤劳的小蜜蜂,不停地记录着它的“工作日...
安卓系统可以调用dll,安卓系... 你知道吗?安卓系统竟然能调用DLL文件,这可是个让人眼前一亮的小秘密呢!想象你手中的安卓设备,不仅能...
安卓通讯 录系统代码,基于安卓... 你有没有想过,你的手机里那个默默无闻的通讯录系统,其实背后有着一套复杂的代码在支撑呢?今天,就让我带...
安卓系统版本对应关系,安卓系统... 你有没有发现,每次手机更新系统,那感觉就像给手机换了个新衣裳,焕然一新呢!不过,你知道吗?安卓系统的...