微信小程序前后端數(shù)據(jù)交互的詳細(xì)圖文教程
前言
先簡單說一下我寫的這個危險小程序前后端交互的業(yè)務(wù),主要是兩個數(shù)據(jù):supplyCount和wantBuyCount,分別代表我的車源和我的求購。目前的需求就是小程序向后端發(fā)送請求,然后后端從數(shù)據(jù)庫獲取車源和求購的數(shù)量反饋給小程序,最后將這兩個數(shù)據(jù)顯示出來。
因為就兩個數(shù)據(jù)所以處理起來是比較簡單的,可以把這個當(dāng)做小程序前后端交互最基礎(chǔ)CRUD方法,屬于是打基礎(chǔ)的技能。
一 微信小程序發(fā)送請求
首先在微信開發(fā)者工具的api.js里面加入發(fā)送的請求地址,如圖所示
這里我將util.request微信封裝的方法截圖出來,大家可以看看他的格式和傳遞的參數(shù)和數(shù)據(jù),可以看出,wx.request里面有四個參數(shù),分別是請求地址url,返回后端的參數(shù)data,請求的方法method,和頭部header,已經(jīng)從后端請求成功后從后端返回的數(shù)據(jù)res。
根據(jù)這個方法,我們可以寫出通過用戶id查詢用戶車源和求購數(shù)量的請求。首先在data中定義兩個變量存儲車源和求購數(shù)量,如圖所示。
在小程序的js頁面中寫發(fā)送請求的方法,因為請求的數(shù)據(jù) 需要在頁面加載的時候就顯示,所以將次方法寫在了onLoad頁面初始化函數(shù)里。并且我們需要從storage緩存中獲取用戶的id來查詢數(shù)量,所以先從storage獲取user數(shù)據(jù),然后通過util.request方法發(fā)送請求,最后將請求獲得的數(shù)據(jù)res賦值給data中定義好的兩個變量。代碼如下。
var user = wx.getStorageSync('user') //從storage緩存中獲取用戶數(shù)據(jù) util.request(api.supplyCount,//url為api中定義好的 {shopId: user.shopId}//返回的數(shù)據(jù)為用戶的shopId ,'GET').then(res => {//請求的方法為get,res為獲取的數(shù)據(jù) this.setData({//將res賦值為data中的supplyCount supplyCount: res }) })
util.request(api.wantBuyCount, {shopId: user.shopId} ,'GET').then(res => { this.setData({ wantBuyCount: res }) })
在xml文件中加入這兩個組件,將數(shù)據(jù)顯示出來
<view class='top_nav'> <view class='top_column'> <view class='top_column_item' bindtap='goMySupply' data-index='1' data-route='/pages/purchase/purchase'> <text class="top_column_item_count">{{supplyCount}}</text> <view class='user_column_item_text'>我的車源</view> </view> <view class="divLine"></view> <view class='top_column_item' bindtap='goMyQuote' data-index='2' data-route='/pages/purchase/purchase'> <text class="top_column_item_count">{{wantBuyCount}}</text> <view class='user_column_item_text'>我的求購</view> </view> </view> </view>
二 后端接口接受小程序請求并返回數(shù)據(jù)
后端來說比較簡單,先在controller層寫好和前端請求地址對應(yīng)的方法,然后再service層寫好對應(yīng)的邏輯方法,即根據(jù)shopId查詢車源和求購數(shù)量,因為我的springboot項目使用了mybatis和mybatis-generator插件,所以實體類domain層和mapper接口層都自動生成了,并且也生成了常用的CRUD方法,可以直接調(diào)用,在這里將我的代碼附上。
controller層
@RequestMapping("/wx/supply") public class WxSupplyController { @Autowired private SupplyService supplyService; @GetMapping("count") public int count(Integer shopId){ int number = supplyService.countByshopId(shopId); return number; } }
service層
@Service public class SupplyService { @Resource private LitemallFormSupplyMapper formSupplyMapper; public int countByshopId(Integer shopId){ LitemallFormSupplyExample example = new LitemallFormSupplyExample(); LitemallFormSupplyExample.Criteria criteria = example.createCriteria(); example.or().andShopIdEqualTo(shopId); return (int)formSupplyMapper.countByExample(example); } }
三 最后的效果圖
總結(jié)
到此這篇關(guān)于微信小程序前后端數(shù)據(jù)交互的文章就介紹到這了,更多相關(guān)微信小程序前后端數(shù)據(jù)交互內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Bootstrap編寫一個兼容主流瀏覽器的受眾門戶式風(fēng)格頁面
這篇文章主要介紹了Bootstrap編寫一個兼容IE8、谷歌等主流瀏覽器的受眾門戶式風(fēng)格頁面,感興趣的小伙伴們可以參考一下2016-07-07js將json格式內(nèi)容轉(zhuǎn)換成對象的方法
這篇文章介紹了js將json格式內(nèi)容轉(zhuǎn)換成對象的方法,有需要的朋友可以參考一下2013-11-11ES6如何將?Set?轉(zhuǎn)化為數(shù)組示例詳解
這篇文章主要為大家介紹了ES6如何將?Set?轉(zhuǎn)化為數(shù)組的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02javascript 從if else 到 switch case 再到抽象
大家覺得在接手遺留代碼時,見到什么東東是最讓人感到不耐煩的?復(fù)雜無比的 UML ?我覺得不是。2010-07-07多次注冊事件會導(dǎo)致一個事件被觸發(fā)多次的解決方法
一個JavaScript邏輯,會自動綁定函數(shù)到按鈕的click事件,但是這段代碼會反復(fù)注冊事件,具體的解決方法如下,感興趣的朋友可以參考下2013-08-08