【已验证-直接用】微信小程序wx.request请求服务器json数据并渲染到页面

news2024/11/18 12:27:22

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

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

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

data.json

[
    {
        "id":"100",
        "title":"中国载人航天工程三十年成就展",
        "pv":"490.1万"
    },
    {
        "id":"101",
        "title":"上海80后夫妻攒300万决定退休",
        "pv":"488.0万"
    },
    {
        "id":"102",
        "title":"医保改革引关注 官方回应民众顾虑",
        "pv":"446.9万"
    },
    {
        "id":"103",
        "title":"餐厅接网吧10个订单收到9个差评",
        "pv":"406.0万"
    },
    {
        "id":"104",
        "title":"三亚买3888元海鲜被提醒多花1700",
        "pv":"340.1万"
    },
    {
        "id":"105",
        "title":"警方回应女子高铁站殴打威胁女童",
        "pv":"264.7万"
    }
]

Json.wxml

<!--pages/Json/Json.wxml-->
<view class='container'>
 
 <view class="header">小程序渲染数据示例</view>

 <view class="card" wx:for="{{dataList}}" wx:key="dataList">
     <view class="title">{{index+1}} . {{item.title}}</view>
     <view class="pv">{{item.pv}}</view>
 </view>

</view>

<view class="author">BY TANKING</view>

Json.wxss

/* pages/Json/Json.wxss */
.container{
  width: 90%;
  margin:30px auto;
}

.container .header{
  text-align: center;
  font-size: 20px;
  margin-bottom: 25px;
}

.container .card{
  width: 100%;
  height: 45px;
  background: #eee;
  border-bottom: 1px solid #fff;
}

.container .card .title{
  width: 80%;
  float: left;
  height: 45px;
  line-height: 45px;
  font-size: 15px;
  color: #666;
  text-indent: 15px;
  white-space: nowrap; text-overflow: ellipsis; overflow: hidden; word-break: break-all; /*超出部分显示...*/
}

.container .card .pv{
  width: 20%;
  float: right;
  height: 45px;
  line-height: 45px;
  font-size: 15px;
  color: #666;
}

.author{
  text-align: center;
  font-size: 13px;
  color: #ccc;
}

Json.js

// pages/Json/Json.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    dataList:[]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

// 避免this指向问题
var that = this
 
// 发起请求
wx.request({
  url: 'http://127.0.0.1:8081/apiwx/jason/data.json', // 这里要替换你的域名的
  headers: {
    'Content-Type': 'application/json'
  },
  success: function (res) {
    //console.log("获取到的用户信息成功: " + res.data);
    // 将获取到的JSON数据存入list数组中
    that.setData({
      dataList: res.data,
    })

    // 在控制台打印
    console.log(res.data)
  }
})




  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

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

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,就可以实现每一项的编号。
 

如果我们没有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"
 

渲染结果如下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1196559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机组成原理之处理器(单周期)

引言 处理器的实现方式决定了时钟周期长度和CPI。实现方式有单周期与流水线&#xff0c;本篇谈谈单周期处理器。 目前CPU的频率一般是3GHZ/4GHZ&#xff0c;但是频率是有极限值的&#xff0c;受cycletime影响 基本的RISC-V实现 存储指令&#xff1a;ld,sd算术逻辑指令 &…

【图文详解】Android Studio(新版本) 配置OpenCV库,解决出现的各种问题

前言 写这篇文章的目的就是记录自己在配置OpenCV库时遇到的问题。在网上查找相关资料时&#xff0c;发现很多Android Studio都是老版本&#xff0c;并且出现的问题都不能被解决。自己在配置过程中出现的问题都进行记录下来并一一解决。 新建项目 点击 New Project 选择界面 …

什么工具可以制作照片书并分享到微信?

大家平时在微信朋友圈&#xff0c;有没有看到别人发的翻页效果的照片书&#xff1f;这种照片书&#xff0c;通过链接或者二维码就能够在线观看&#xff0c;仿真翻页效果&#xff0c;就跟真实的看纸质相册一样&#xff0c;阅读体验感真的是超级nice&#xff01; 那你们知道这种…

node插件MongoDB(五)—— 库mongoose 的模块化(五)

文章目录 一、使用mongoose 模块化的原因二、准备工作2. 启动mongo.exe 和mongod.exe 两个程序连接数据库 三、基本模块的拆分1、基本逻辑2、代码3、代码图示说明 四、在index.js 中进一步的拆分1.拆分原因2.新建model文件夹存储文档的结构对象3.代码4.代码实际演示和注意点 一…

JAVA基础语法编程详解

1 类型转换 描述&#xff1a; 设计一个方法&#xff0c;将一个小于2147483647的double类型变量以截断取整方式转化为int类型输入描述&#xff1a; 随机double类型变量输出描述&#xff1a; 转化后的int类型变量示例 输入&#xff1a;123.45 输出&#xff1a; 123 题解思路&…

手摸手入门Springboot+Grafana10.2接收JSON

JSON&#xff08;JavaScript Object Notation, JS对象简谱&#xff09;是一种轻量级的数据交换格式。它基于 ECMAScript&#xff08;European Computer Manufacturers Association, 欧洲计算机协会制定的js规范&#xff09;的一个子集&#xff0c;采用完全独立于编程语言的文本…

22款奔驰S400L升级原厂360全景影像 打破死角

本次星骏汇小许介绍的是22款奔驰S400L升级原厂360全景影像&#xff0c;上帝视角看清车辆周围环境&#xff0c;更轻松驾驶 升级360全景影像系统共有前后左右4个摄像头&#xff0c;分别在车头&#xff0c;车尾&#xff0c;以及两边反光镜下各一个&#xff0c;分别用来采集车头&a…

「题解」环形链表的约瑟夫问题

文章目录 &#x1f349;题目&#x1f349;解析&#x1f34c;创建环形链表&#x1f34c;释放指定节点&#x1f34c;其他思路 &#x1f349;写在最后 &#x1f349;题目 &#x1f349;解析 题目的意思就是从环形链表的第一个节点开始数&#xff0c;数到第 m 的时候释放对应的节点…

Arduino、arm、树莓派、单片机四者有什么不同

文章目录 ArduinoARM树莓派单片机 初学单片机的同学&#xff0c;可能会对Arduino、ARM、树莓派以及单片机这些概念比较模糊&#xff0c;实际上&#xff0c;这四个是不同的概念和技术。 Arduino Arduino&#xff08;阿尔杜伊诺&#xff09;是一种开源电子原型平台&#xff0c;它…

Mac安装配置Tomcat,以及使用(详解)

目录 一、Tomcat下载&#xff1a; 1、左栏选择Tomcat版本 2、点击下载即可&#xff0c;任选其一 ​编辑3、下载好的文件夹放到用户名下即可&#xff08;之前已经下载过&#xff0c;这里以Tomcat 8.5.88为演示&#xff09;&#xff0c;这里提供8.5.88的安装包&#xff1a; 二…

Visual Studio 2019下编译OpenCV 4.7 与OpenCV 4.7 contrib

一、环境 使用的环境是Win10,Visual Studio 2019,Cmake3.28,cdua 11.7&#xff0c;cudnn 8.5,如果只是在CPU环境下使用&#xff0c;则不用安装CUDA。要使用GPU处理&#xff0c;安装好CUDA之后&#xff0c;要测试安装的CUDA是否能用。不能正常使用的话&#xff0c;添加一下系统…

LoadRunner使用动态链接库技术

什么是动态库&#xff1f; 动态库一般又叫动态链接库英文为DLL&#xff0c;是Dynamic Link Library 的缩写形式&#xff0c;DLL是一个包含可由多个程序同时使用的代码和数据的库&#xff0c;DLL不是可执行文件。动态链接提供了一种方法&#xff0c;使进程可以调用不属于其可执行…

大数据BigDecimal工具类

我们在开发中经常要对数据进行运算&#xff0c;获取对应正确的数值&#xff0c;而double和float这两个本质都是小数点&#xff0c;没办法使用二进制精确的表示&#xff0c;所以他们是不准确的&#xff0c;这个时候就应该使用大数据BigDecimal进行运算了&#xff0c;它可以精确的…

Selenium自动化测试细节讲解

与以前瀑布式开发模式不同&#xff0c;现在软件测试人员具有使用自动化工具执行测试用例套件的优势&#xff0c;而以前&#xff0c;测试人员习惯于通过测试脚本执行来完成测试。 但自动化测试的目的不是完全摆脱手动测试&#xff0c;而是最大程度地减少手动运行的测试。自动化…

Versal 自适应 SoC SelectMAP 启动检查表

Versal 自适应 SoC SelectMAP 启动检查表 本文档提供了有关 SelectMAP 启动设置的技巧和指南。在提交个案服务请求之前&#xff0c;应认真查看以下检查表。SelectMAP 启动模式的常规检查表&#xff1a; 是否已查看 SelectMAP 文档&#xff0c;了解连接和电源轨的用法&#…

Spring事务一网打尽

Spring事务一网打尽 什么是事务首先说一个坑Spring 中的事务两种用法三大基础设施编程性事务TransactionManager 实现编程性事务TransactionTemplate 实现编程性事务 声明式事务XML配置声明式事务注解配置声明式事务注解XML混合配置声明式事务 什么是事务 这里要额外补充一点&a…

单片机第三季-第五课:GPIO控制LED

目录 1&#xff0c;GPIO数据手册 1.1&#xff0c;端口配置寄存器 ​1.2&#xff0c;端口输入数据寄存器和端口输出数据寄存器 ​1.3&#xff0c;端口位设置/清除寄存器 1.4&#xff0c;端口位清除寄存器 2&#xff0c;原理图分析和MDK工程 3&#xff0c;写代码通过GP…

快速入门:教你如何使用vue-element-admin 集成框架开发项目(保姆式教学)

设置完中文界面&#xff0c;打开是这样的 端口号更改 嘿嘿&#xff0c;要把项目改成自己的&#xff0c;是不是要更改标题啊 题目更改 src/utils/get-page-title.js src/settings.js 如何添加菜单页面 添加菜单页面&#xff08;父菜单/子菜单&#xff09; 效果图 添加自己的页…

Unity--视觉组件(Raw Image,Mask)||Unity--视觉组件(Text,Image)

1.Raw Image 2.mask “”Raw Image&#xff1a;“” Texture&#xff1a;&#xff08;纹理&#xff09; 表示要显示的图像的纹理&#xff1b; Color&#xff1a;&#xff08;颜色&#xff09; 应用于图像的颜色&#xff1b; Material&#xff1a;&#xff08;材质&#xff09…

FreeRTOS源码阅读笔记3--queue.c

消息队列可以应用于发送不定长消息的场合&#xff0c;包括任务与任务间的消息交换&#xff0c;队列是 FreeRTOS 主要的任务间通讯方式&#xff0c;可以在任务与任务间、中断和任务间传送信息&#xff0c;发送到 队列的消息是通过拷贝方式实现的&#xff0c;这意味着队列存储…