微信小程序 数据交互与渲染实例详解

 更新时间:2017年01月21日 14:14:48   投稿:lqh  
这篇文章主要介绍了微信小程序 数据交互与渲染实例详解的相关资料,需要的朋友可以参考下

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

实现效果图:

微信小程序的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; 
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 微信小程序 Video API实例详解

    微信小程序 Video API实例详解

    这篇文章主要介绍了 微信小程序 Video API实例详解,需要的朋友可以参考下
    2016-10-10
  • 在微信小程序中渲染HTML内容3种解决方案及分析与问题解决

    在微信小程序中渲染HTML内容3种解决方案及分析与问题解决

    在开发微信小程序时我们会在小程序内加入纯HTML代码,且HTML中包括图片,视频,甚至是事件,微信小程序为我们提供了3种解决方法,但它们的功能与实现方式与最终效果并不理想
    2020-01-01
  • jQuery幻灯片插件owlcarousel参数说明中文文档

    jQuery幻灯片插件owlcarousel参数说明中文文档

    jQuery幻灯片插件owlcarousel是一个小巧强大兼容性强的幻灯片插件,兼容IE6以上所有浏览器,本文主要介绍了字的使用方法与中文参数与API说明
    2018-02-02
  • 一文了解什么是TypeScript?

    一文了解什么是TypeScript?

    这篇文章主要介绍了什么是TypeScript,TypeScript是JavaScript的超集,它可以编译成纯JavaScript代码,TypeScript可以运行在浏览器环境、Node.js环境或者ECMAScript3或者更高的JavaScript的引擎中,下面我们就进入文章一起学习TypeScript的详细内容吧
    2021-12-12
  • 微信小程序 设置启动页面的两种方法

    微信小程序 设置启动页面的两种方法

    这篇文章主要介绍了 微信小程序 设置启动页面的方法的相关资料,这里对设置启动页面的两种方法分别介绍,需要的朋友可以参考下
    2017-03-03
  • js 字符串中文下对齐问题解析

    js 字符串中文下对齐问题解析

    这篇文章主要为大家介绍了js字符串含中文下对齐问题解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • JavaScript实现一个Promise队列小工具

    JavaScript实现一个Promise队列小工具

    这篇文章主要介绍了JavaScript实现一个Promise队列小工具,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • 微信小程序搜索组件wxSearch实例详解

    微信小程序搜索组件wxSearch实例详解

    这篇文章主要介绍了微信小程序搜索组件wxSearch实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • JavaScript数组 几个常用方法总结

    JavaScript数组 几个常用方法总结

    这篇文章主要介绍了JavaScript数组 几个常用方法,主要概述的方法有filter()、map()、sort()、reduce()、forEach(),这些方法都是JavaScript常用到的方法,下面文章内容详细介绍了他们的语法、参数、返回值等资料,需要的朋友可以参考一下
    2021-11-11
  • 微信小程序中使元素占满整个屏幕高度实现方法

    微信小程序中使元素占满整个屏幕高度实现方法

    这篇文章主要介绍了微信小程序中使元素占满整个屏幕高度实现方法的相关资料,需要的朋友可以参考下
    2016-12-12

最新评论