微信小程序 數(shù)據(jù)交互與渲染實(shí)例詳解
微信小程序 數(shù)據(jù)交互與渲染
實(shí)現(xiàn)效果圖:
微信小程序的api中提供了網(wǎng)絡(luò)交互的api,我們只要調(diào)用即可和后端進(jìn)行數(shù)據(jù)交互,該api為wx.request.,具體代碼如下。
//list.js //獲取應(yīng)用實(shí)例 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: "獲取數(shù)據(jù)成功", icon: 'success', duration: 2000 }) }, fail: function (e) { var toastText='獲取數(shù)據(jù)失敗' + JSON.stringify(e); that.setData({ hiddenLoading: !that.data.hiddenLoading }); wx.showToast({ title: toastText, icon: '', duration: 2000 }) }, complete: function () { // complete } }), //事件處理函數(shù) bindViewTap: function () { wx.navigateTo({ url: '../logs/logs' }) }, onLoad: function () { }, onReady: function () { this.loadList(); }, onPullDownRefresh: function () { this.loadList(); wx.stopPullDownRefresh() } })
在loadList函數(shù)中進(jìn)行了網(wǎng)絡(luò)請(qǐng)求,請(qǐng)求的數(shù)據(jù)放到了data的list中。我們使用setData來修改list,在該函數(shù)調(diào)用之后,微信小程序的框架就會(huì)判斷數(shù)據(jù)狀態(tài)的變化,然后進(jìn)行diff判斷,如果有變化就渲染到界面中。這個(gè)與react.js的渲染方式相似,主要是內(nèi)部維護(hù)了一個(gè)類似于虛擬文檔的對(duì)象,然后通過對(duì)虛擬文檔的判斷來呈現(xiàn)界面,這樣可以大大提高性能。
這里我們還做了一個(gè)下拉刷新的觸發(fā),即onPullDownRefresh函數(shù),為了能夠使用下拉刷新,我們需要進(jìn)行配置,現(xiàn)在我們只需要當(dāng)前頁面生效,所以只要在對(duì)應(yīng)頁的json中配置即可,即在list.json中配置。
list.json
{ "navigationBarTitleText": "產(chǎn)品列表", "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中,還有一個(gè)pages,我們需要路由的頁面都需要在這里注冊(cè),否則無法路由到。
在請(qǐng)求數(shù)據(jù)的時(shí)候,加入了等待和獲取成功失敗的提示。這需要相應(yīng)的頁面配合,頁面代碼list.wxm.如下
<!--list.wxml--> <view class="container container-ext"> <!--默認(rèn)隱藏--> <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; }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- 微信小程序上傳圖片到服務(wù)器實(shí)例代碼
- 微信小程序 消息推送php服務(wù)器驗(yàn)證實(shí)例詳解
- 微信小程序ajax實(shí)現(xiàn)請(qǐng)求服務(wù)器數(shù)據(jù)及模版遍歷數(shù)據(jù)功能示例
- 微信小程序?qū)崿F(xiàn)打開并下載服務(wù)器上面的pdf文件到手機(jī)
- 微信小程序使用wx.request請(qǐng)求服務(wù)器json數(shù)據(jù)并渲染到頁面操作示例
- 微信小程序搭建自己的Https服務(wù)器
- 微信小程序遇到修改數(shù)據(jù)后頁面不渲染的問題解決
- 微信小程序 條件渲染詳解
- 微信小程序 教程之列表渲染
- 微信小程序使用for循環(huán)動(dòng)態(tài)渲染頁面操作示例
- 微信小程序模版渲染詳解
- 微信小程序開發(fā)(一):服務(wù)器獲取數(shù)據(jù)列表渲染操作示例
相關(guān)文章
使用HTTP?Referer實(shí)現(xiàn)圖片防盜圖文示例詳解
這篇文章主要為大家介紹了使用HTTP?Referer實(shí)現(xiàn)圖片防盜圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Proxy的不可變數(shù)據(jù)優(yōu)點(diǎn)及使用詳解
這篇文章主要為大家介紹了Proxy的不可變數(shù)據(jù)優(yōu)點(diǎn)及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03JavaScript前端迭代器Iterator與生成器Generator講解
這篇文章主要為大家介紹了JavaScript前端迭代器Iterator與生成器Generator講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08JavaScript實(shí)現(xiàn)隊(duì)列結(jié)構(gòu)過程
這篇文章主要介紹了JavaScript實(shí)現(xiàn)隊(duì)列結(jié)構(gòu)的過程,隊(duì)列即Queue,它是受限的線性表,先進(jìn)先出,受限之處在于它只允許在表的前端進(jìn)行刪除操作,下面我們一起進(jìn)入文章學(xué)習(xí)更加詳細(xì)內(nèi)容,需要的朋友也可以參考一下2021-12-12Babel?插件開發(fā)&訪問節(jié)點(diǎn)實(shí)例詳解
這篇文章主要為答案及介紹了Babel?插件開發(fā)&訪問節(jié)點(diǎn)實(shí)例詳解,整理一下?Babel?插件開發(fā)時(shí)用得到的轉(zhuǎn)換操作相關(guān)的?API,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08JavaScript監(jiān)測(cè)數(shù)據(jù)類型方法全面總結(jié)
這篇文章主要為大家介紹了JavaScript監(jiān)測(cè)數(shù)據(jù)類型方法示例全面總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08JavaScript實(shí)現(xiàn)余額數(shù)字滾動(dòng)效果
這篇文章主要介紹了JavaScript實(shí)現(xiàn)余額數(shù)字滾動(dòng)效果,將傳入的帶滾動(dòng)的n位數(shù)字拆分成每一個(gè)要滾動(dòng)的數(shù),然后動(dòng)態(tài)的創(chuàng)建裝著滾動(dòng)到每一位相應(yīng)數(shù)字的容器,然后放入傳入的目標(biāo)容器中,更多詳細(xì)內(nèi)容,一起進(jìn)入下面文章學(xué)習(xí)吧2021-12-12JS前端使用canvas實(shí)現(xiàn)擴(kuò)展物體類和事件派發(fā)
這篇文章主要為大家介紹了JS前端使用canvas實(shí)現(xiàn)擴(kuò)展物體類和事件派發(fā)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08微信小程序 選擇器(時(shí)間,日期,地區(qū))實(shí)例詳解
這篇文章主要介紹了微信小程序 選擇器(時(shí)間,日期,地區(qū))實(shí)例詳解的相關(guān)資料,這里提供了實(shí)例代碼及實(shí)現(xiàn)效果圖,幫助大家學(xué)習(xí)理解這部分知識(shí),需要的朋友可以參考下2016-11-11await vs return vs return await關(guān)鍵區(qū)別
這篇文章主要為大家介紹了await vs return vs return await關(guān)鍵區(qū)別解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12