当前位置:   article > 正文

微信小程序wx.request请求服务器json数据并渲染到页面_微信小程序创建请求,返回 id

微信小程序创建请求,返回 id

微信小程序的数据总不能写死吧,肯定是要结合数据库来做数据更新,而小程序数据主要是json数据格式,所以我们可以利用php操作数据库,把数据以json格式数据输出即可。

现在给大家讲一下微信小程序的wx.request请求服务器获取数据的用法。

官方文档给出了示例代码,但是我这边自己进行了简单的处理:

index.js

  1. const app = getApp()
  2. Page({
  3. data: {},
  4. onLoad: function () {
  5. // 避免this指向问题
  6. var that = this
  7. // 发起请求
  8.     wx.request({
  9.       url: 'http://demo.likeyunba.com/testData/20230225/data.json', // 这里要替换你的域名的
  10.       headers: {
  11.         'Content-Type': 'application/json'
  12.       },
  13.       success: function (res) {
  14. // 将获取到的JSON数据存入list数组中
  15.         that.setData({
  16.           dataList: res.data,
  17.         })
  18. // 在控制台打印
  19. console.log(res.data)
  20.       }
  21.     })
  22. }
  23. })

注意,上面的 http://demo.likeyunba.com/testData/20230225/data.json 就是数据源,替换为你服务器的API接口,我这里用test.json来做演示,返回是JSON格式的数据。

data.json

  1. [
  2. {
  3. "id":"100",
  4. "title":"中国载人航天工程三十年成就展",
  5. "pv":"490.1万"
  6. },
  7. {
  8. "id":"101",
  9. "title":"上海80后夫妻攒300万决定退休",
  10. "pv":"488.0万"
  11. },
  12. {
  13. "id":"102",
  14. "title":"医保改革引关注 官方回应民众顾虑",
  15. "pv":"446.9万"
  16. },
  17. {
  18. "id":"103",
  19. "title":"餐厅接网吧10个订单收到9个差评",
  20. "pv":"406.0万"
  21. },
  22. {
  23. "id":"104",
  24. "title":"三亚买3888元海鲜被提醒多花1700",
  25. "pv":"340.1万"
  26. },
  27. {
  28. "id":"105",
  29. "title":"警方回应女子高铁站殴打威胁女童",
  30. "pv":"264.7万"
  31. }
  32. ]

index.wxml

wx:for这个是小程序提供的一个指令,相当于遍历JSON数组的每一项。上面test.json有很多个JSON对象,遍历每一项就可以渲染出每一项的数据。

wx:key是给每一项添加一个标识,相当于每一项都拥有一个身份证的意思,也是唯一的,这样做有助于渲染效率。

item是相当于JSON数组的每一项,通过wx:for遍历出来的每一个JSON对象,然后读取每一个JSON对象的值。例如下面这个:

如果要单独读取里面的值,就是item.id,item.title,item.pv

{{index+1}} 指的是索引值+1,索引值是从0开始算的,即里面的每一项的值,一共有6项,从上到下的索引值是0、1、2、3、4、5,但是我为了每一项有个编号,那就在索引值的基础上+1,就可以实现每一项的编号。

  1. {
  2. "id":"100",
  3. "title":"中国载人航天工程三十年成就展",
  4. "pv":"490.1万"
  5. }
  1. <view class='container'>
  2. <view class="header">小程序渲染数据示例</view>
  3. <view class="card" wx:for="{{dataList}}" wx:key="dataList">
  4. <view class="title">{{index+1}} . {{item.title}}</view>
  5. <view class="pv">{{item.pv}}</view>
  6. </view>
  7. </view>
  8. <view class="author">BY TANKING</view>

如果我们没有wx:key那么在控制台会提示一些警告信息,但是这个警告信息并不影响页面的渲染,基本可以忽略掉!

警告信息:Now you can provide attr "wx:key" for a "wx:for" to improve performance

wx:key用来对列表渲染的数据指定一个"主键”,以加快列表渲染的速度。以下是官方文档原话:如不提供 wx:key,会报一个 warning, 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。如果你一定想去掉这个警告,可以在wx:for的组件属性里增加一个 wx:key="unique",unique请替换成数据绑定列表里的任意一个字段的字段名,比如文章列表数据中的字段“postId”,即wx:key="postId"。不建议使用wx:key="*this"。

index.wxss

这个是样式文件,用来美化index.wxml的样式的。

  1. .container{
  2. width: 90%;
  3. margin:30px auto;
  4. }
  5. .container .header{
  6. text-align: center;
  7. font-size: 20px;
  8. margin-bottom: 25px;
  9. }
  10. .container .card{
  11. width: 100%;
  12. height: 45px;
  13. background: #eee;
  14. border-bottom: 1px solid #fff;
  15. }
  16. .container .card .title{
  17. width: 80%;
  18. float: left;
  19. height: 45px;
  20. line-height: 45px;
  21. font-size: 15px;
  22. color: #666;
  23. text-indent: 15px;
  24. white-space: nowrap; text-overflow: ellipsis; overflow: hidden; word-break: break-all; /*超出部分显示...*/
  25. }
  26. .container .card .pv{
  27. width: 20%;
  28. float: right;
  29. height: 45px;
  30. line-height: 45px;
  31. font-size: 15px;
  32. color: #666;
  33. }
  34. .author{
  35. text-align: center;
  36. font-size: 13px;
  37. color: #ccc;
  38. }

渲染结果如下

如果还是不懂,请留言。

作者:TANKING

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/609424
推荐阅读
相关标签
  

闽ICP备14008679号