网易云音乐开发--前后端交互

前后端交互

首先启动服务器

1. 根目录下执行: npm start
2. 服务器地址: http://localhost:3000
3. 示例: http://localhost:3000/banner

测试接口能不能用

 

 发起请求

看接口说明,在wx的load函数中发起请求 

 

请求成功 

封装请求功能函数

根据我们的需求封装一个请求功能的函数

然后引入并使用它

修改代码,使用promise拿到request返回回来的数据

  但是每次请求都带有http://localhost:3000,带冗余了,修改代码

最笨的办法就是用字符串拼接的方式,当然为了减少冗余,我们可以写在.js上

 在这里说明一下promise 中的resolve参数和reject参数

new promise初始化promise实例的状态为pending

resolve修改promise的状态为成功状态resolved

reject修改promise的状态为失败状态rejected

列表渲染

这样就能访问到图片资源

然后就在小程序中循环遍历这个数组

 注意这里有一点不同的是,在vue中我们需要item.id,而在微信小程序中我们可以直接点出来这个属性 

推荐歌曲动态实现

就是把下面的也修改为列表渲染

查看接口文档

 拿到的这个数据

 

自定义组件 

我们观察发现这俩部分很相似,为了代码的复用性,我们可以封装成一个组件

Component(Object object) | 微信开放文档 (qq.com)

 

文档说明 

然后把之前写好的抽取出来

 然后去复用

 

为啥上边能用,而下边不能用?

 因为我们之前写的样式,自己写的小问题 问题就出现在这里,我们需要去指定高度。

  在组件中定义一个props属性,然后把值传进去 

排行榜静态搭建

对排行榜的静态搭建 

排行榜数据动态显示

 

 需求分析

1.需要根据idx的值获取对应的数据

2.idx的取值范围是0-20,我们需要0-4

3.需要发送5次请求

在这里说一下前++和后++的区别

1.先看到的运算符还是值

2.如果先看到的是运算符就先运算再赋值

3.如果先看到的是值那么就先赋值再运算

说一下这里为什么要使用slice而不是使用splice。这是因为splice会修改原数组,可以对指定的数组进行增删改,slice不会修改原数组

 渲染到页面

 但是有一个小bug,歌曲名太长,文字都到下面了。因此我们要去设置歌曲名

 而我们这种写法会导致,网络加载的时候是白皮(没有加载出来),因为我们发起的5次请求不是并发的

 

 而放在这里不需要等待5次请求全部结束才更新,用户体验较好,但是渲染次数会多一点

猜你喜欢

转载自blog.csdn.net/weixin_64612659/article/details/130478852