找到了一个比较好用的新闻接口
1:首先写js,老样子
用request请求接口url,当请求成功的时候,在控制台打印一下返回的res.data数据,在控制台可以看到打印了接口数据了,在请求接口成功之后,用setData接收数据,并且需在data中声明一个接收数据的变量。
Page({ data: { // 3:需在data中声明一个接收数据的变量。 list: [] }, onLoad: function (options) { wx.request({ url: 'https://www.apiopen.top/journalismApi', header: { 'content-type': 'application/json' }, success: res => { //1:在控制台打印一下返回的res.data数据 console.log(res.data) //2:在请求接口成功之后,用setData接收数据 this.setData({ //第一个data为固定用法,第二个data是json中的data list: res.data.data }) } }) }, })
我在 this.setData里面写的, list: res.data.data, 第一个data为固定用法,第二个data是json中的data,因为新闻列表里面的所有的json数据都是放在data里面了。
2:css我就不多说了
.item { width: 100%; height: 186rpx; position: relative; display: flex; margin: 10rpx 10rpx; border-bottom: 1px solid rgb(197, 199, 199); } .item .number-wrapper { height: 100%; flex: 1; display: flex; flex-direction: column; } .item .img { width: 150rpx; height: 150rpx; padding: 20rpx; } .number-wrapper .name { margin: 10rpx 40rpx 20rpx 10rpx; font-size: 35rpx; overflow: hidden; } .count { font-size: 34rpx; }
3:然后最重要的就是数据渲染
在wxml里面进行操作,首先是循环列表,那就要写一个wx:for列表渲染,然后在取出自己想要的数据,这里想要取出图片,标题和时间,根据json的数据结构来解析即可。
<view wx:for="{{list.auto}}" wx:key="index"> <view> <image src="https://www.jb51.net/{{item.picInfo[0].url}}" mode="scaleToFill"></image> <view> <text>{{item.title}}</text> <view> <text>{{item.ptime}}</text> </view> </view> </view> </view>
最重要的是图片的解析,完成之后,可以看到,接口数据已经渲染在前端界面了,这个时候已经完成了小程序调用新闻列表实现列表循环这个需求啦。