微信小程序 数据交互与渲染

实现效果图:
微信小程序的api中提供了网络交互的api,我们只要调用即可和后端进行数据交互,该api为wx.request.,具体代码如下。
//list.js
//获取应用实例
var app = getApp()
Page({
data: {
list:[],
hiddenLoading: true,
url: ''
},
loadList: function () {
var that = this;
that.setData({
hiddenLoading: !that.data.hiddenLoading
})
var url = app.urls.CloudData.getList;
that.setData({
url: url
});
wx.request({
url: url,
data: {},
method: 'GET',
success: function (res) {
var list= res.data.list;
if (list == null) {
list = [];
}
that.setData({
list: list,
hiddenLoading: !that.data.hiddenLoading
});
wx.showToast({
title: "获取数据成功",
icon: 'success',
duration: 2000
})
},
fail: function (e) {
var toastText='获取数据失败' + JSON.stringify(e);
that.setData({
hiddenLoading: !that.data.hiddenLoading
});
wx.showToast({
title: toastText,
icon: '',
duration: 2000
})
},
complete: function () {
// complete
}
}),
//事件处理函数
bindViewTap: function () {
wx.navigateTo({
url: '../logs/logs'
})
},
onLoad: function () {
},
onReady: function () {
this.loadList();
},
onPullDownRefresh: function () {
this.loadList();
wx.stopPullDownRefresh()
}
})
在loadList函数中进行了网络请求,请求的数据放到了data的list中。我们使用setData来修改list,在该函数调用之后,微信小程序的框架就会判断数据状态的变化,然后进行diff判断,如果有变化就渲染到界面中。这个与react.js的渲染方式相似,主要是内部维护了一个类似于虚拟文档的对象,然后通过对虚拟文档的判断来呈现界面,这样可以大大提高性能。
这里我们还做了一个下拉刷新的触发,即onPullDownRefresh函数,为了能够使用下拉刷新,我们需要进行配置,现在我们只需要当前页面生效,所以只要在对应页的json中配置即可,即在list.json中配置。
list.json
{
"navigationBarTitleText": "产品列表",
"enablePullDownRefresh":true
}
如果需要所有的页面的生效,可以在app.json中的window中配置。
app.json
{
"pages":[
"pages/index/index",
"pages/logs/logs",
"pages/list/list"
],
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "WeChat",
"navigationBarTextStyle":"black",
"enablePullDownRefresh":true
}
}
在app.json中,还有一个pages,我们需要路由的页面都需要在这里注册,否则无法路由到。
在请求数据的时候,加入了等待和获取成功失败的提示。这需要相应的页面配合,页面代码list.wxm.如下
<!--list.wxml-->
<view class="container container-ext">
<!--默认隐藏-->
<loading hidden="{{hiddenLoading}}">正在加载</loading>
<scroll-view scroll-y="true">
<view>
<block wx:for="{{list}}" wx:key="no">
<view class="widget">
<view>
<text >{{item.no}}({{item.content}})</text>
</view>
</view>
</block>
</view>
</scroll-view>
</view>
/**list.wxss**/
.widget {
position: relative;
margin-top: 5rpx;
margin-bottom: 5rpx;
padding-top: 10rpx;
padding-bottom: 10rpx;
padding-left: 40rpx;
padding-right: 40rpx;
border: #ddd 1px solid;
}
/**app.wxss**/
.container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding-top: 10rpx;
padding-bottom: 10rpx;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# 微信小程序
# 数据交互与渲染
# 数据交互与渲染详解及实例代码
# 微信小程序上传图片到服务器实例代码
# 微信小程序 消息推送php服务器验证实例详解
# 微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
# 微信小程序实现打开并下载服务器上面的pdf文件到手机
# 微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
# 微信小程序搭建自己的Https服务器
# 微信小程序遇到修改数据后页面不渲染的问题解决
# 微信小程序 条件渲染详解
# 微信小程序 教程之列表渲染
# 微信小程序使用for循环动态渲染页面操作示例
# 微信小程序模版渲染详解
# 微信小程序开发(一):服务器获取数据列表渲染操作示例
# 就会
# 文档
# 在这里
# 希望能
# 还有一个
# 只需要
# 谢谢大家
# 类似于
# 即在
# 正在加载
# 进行了
# 主要是
# 后端
# 应用实例
# 只要在
# complete
# onLoad
# navigateTo
# logs
# bindViewTap
相关文章:
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
焦点电影公司作品,电影焦点结局是什么?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
如何在万网ECS上快速搭建专属网站?
相册网站制作软件,图片上的网址怎么复制?
大连网站制作公司哪家好一点,大连买房网站哪个好?
代刷网站制作软件,别人代刷火车票靠谱吗?
C#怎么使用委托和事件 C# delegate与event编程方法
建站DNS解析失败?如何正确配置域名服务器?
建站ABC备案流程中有哪些关键注意事项?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
如何在阿里云高效完成企业建站全流程?
如何确保FTP站点访问权限与数据传输安全?
建站之星展会模版如何一键下载生成?
如何通过二级域名建站提升品牌影响力?
c# 在ASP.NET Core中管理和取消后台任务
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
如何通过多用户协作模板快速搭建高效企业网站?
网站代码制作软件有哪些,如何生成自己网站的代码?
手机网站制作与建设方案,手机网站如何建设?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
在线制作视频网站免费,都有哪些好的动漫网站?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
建站之星安装后界面空白如何解决?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
如何零基础在云服务器搭建WordPress站点?
孙琪峥织梦建站教程如何优化数据库安全?
开心动漫网站制作软件下载,十分开心动画为何停播?
javascript中对象的定义、使用以及对象和原型链操作小结
网站制作难吗安全吗,做一个网站需要多久时间?
高防服务器如何保障网站安全无虞?
专业网站建设制作报价,网页设计制作要考什么证?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
微信小程序 五星评分(包括半颗星评分)实例代码
如何快速生成ASP一键建站模板并优化安全性?
学校建站服务器如何选型才能满足性能需求?
如何通过老薛主机一键快速建站?
自助网站制作软件,个人如何自助建网站?
建站主机如何选?高性价比方案全解析
开封网站制作公司,网络用语开封是什么意思?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
如何在阿里云域名上完成建站全流程?
5种Android数据存储方式汇总
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
建站之星在线客服如何快速接入解答?
nginx修改上传文件大小限制的方法
建站主机是否等同于虚拟主机?
免费视频制作网站,更新又快又好的免费电影网站?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
*请认真填写需求信息,我们会在24小时内与您取得联系。