创新实训——记录11

目录

内容综述

排行榜完成

组件准备

代码实现

实现效果

个人信息展示

小问题的修改

总结


内容综述

本文将会完成排行榜和个人信息的展示,并对一些毛刺进行处理。

排行榜完成

组件准备

之前的设计里面,在my页面,会有这个按钮:

点击它,可以前往排行榜页面,查看当前的用户积分排行榜。因此,我新设计一个rank页面,用来显示排行榜:

 

在其中,自然需要通过一个个小组件展示每一项。因此,还需要在Components文件夹下新建一个组件,我称之为RankItem组件:

 

至此,需要显示的组件已经建立完毕。根据后端同学给出的接口,数据内容如下:

通过接口可以获取到rank数组,其中每一项都是个对象。把对象的数据传给RankItem组件,并在rank页面中引用RankItem组件,即可显示排行榜了。

代码实现

首先来到RankItem里面,在properties中写好需要父组件传入的数据:

其中要着重利用的就是nickname、headimgurl以及score了。图中没有显示的pos,表示排名,可以在遍历rank数组时传入index+1即可。

然后搭建RankItem组件效果:

 

RankItem组件的封装还是比较容易的,毕竟不涉及函数。然后,在rank页面中引入RankItem组件。在rank.json中配置:

 

接下来就需要准备发送网络请求获取rank数组的方法了。先在rank.js中准备数据:

 

然后封装方法:

 

在onShow中调用:

 

这样就能在页面显示的时候获取rankList了。然后,在wxml文件中调用RankItem组件:

 

至此,页面实现完成。

最后,需要在my页面中,点击“查看当前排行”可以进入rank页面。所以,给它添加一个点击事件的回调函数:

函数实现如下:

 

至此,所有代码均已实现。 

实现效果

效果完成。

个人信息展示

既然写好了排行榜,就应该展示用户的个人数据了,包括当前得分、排名、已完成的图片数、未完成的图片数。这部分在my页面中完成。之前为了方便,都是取的静态数据。现在后端同学提供了接口:

可以看到,根据token可以获取到用户的分数、排名、完成的图片、未完成的图片。这就很容易了,在my.js中先准备一个baseInfo对象:

然后封装方法获取它:

 

在onShow中调用:

 

至此,代码完成。实现效果如下:

 

小问题的修改

在实现draw页面的时候,每次页面显示,我都会让它获取一个新的背景图片,即使用户还没有描绘它或描绘了一部分。这造成了不必要的请求,加重了服务器的负担。甚至,在用户只描绘一部分的时候更换背景图,会造成用户体验差劲。因此,我需要在draw.js的onShow中判断,如果是初次显示,即背景图片的地址是默认图片的时候,才自动获取新的背景图。如果已经获取过了,就不需要在显示页面的时候获取了。实现如下:

 

这样修改之后,调用getBackgroundImgData的场景只有:初次显示和用户完成描绘并上传后。

实现效果:

描绘一部分后切换Tab:

 

再切换回画板:

 

没有更换背景图,说明效果完成。

总结

本文实现了排行榜和个人数据的展示,初步实现了小程序的全部基本功能。接下来,将会对小程序的功能进行补充,并准备提交审核上线。

猜你喜欢

转载自blog.csdn.net/weixin_45792464/article/details/124849317
今日推荐