微信小程序前后端數(shù)據(jù)交互的詳細(xì)圖文教程
前言
先簡單說一下我寫的這個(gè)危險(xiǎn)小程序前后端交互的業(yè)務(wù),主要是兩個(gè)數(shù)據(jù):supplyCount和wantBuyCount,分別代表我的車源和我的求購。目前的需求就是小程序向后端發(fā)送請求,然后后端從數(shù)據(jù)庫獲取車源和求購的數(shù)量反饋給小程序,最后將這兩個(gè)數(shù)據(jù)顯示出來。
因?yàn)榫蛢蓚€(gè)數(shù)據(jù)所以處理起來是比較簡單的,可以把這個(gè)當(dāng)做小程序前后端交互最基礎(chǔ)CRUD方法,屬于是打基礎(chǔ)的技能。
一 微信小程序發(fā)送請求
首先在微信開發(fā)者工具的api.js里面加入發(fā)送的請求地址,如圖所示


這里我將util.request微信封裝的方法截圖出來,大家可以看看他的格式和傳遞的參數(shù)和數(shù)據(jù),可以看出,wx.request里面有四個(gè)參數(shù),分別是請求地址url,返回后端的參數(shù)data,請求的方法method,和頭部header,已經(jīng)從后端請求成功后從后端返回的數(shù)據(jù)res。

根據(jù)這個(gè)方法,我們可以寫出通過用戶id查詢用戶車源和求購數(shù)量的請求。首先在data中定義兩個(gè)變量存儲車源和求購數(shù)量,如圖所示。

在小程序的js頁面中寫發(fā)送請求的方法,因?yàn)檎埱蟮臄?shù)據(jù) 需要在頁面加載的時(shí)候就顯示,所以將次方法寫在了onLoad頁面初始化函數(shù)里。并且我們需要從storage緩存中獲取用戶的id來查詢數(shù)量,所以先從storage獲取user數(shù)據(jù),然后通過util.request方法發(fā)送請求,最后將請求獲得的數(shù)據(jù)res賦值給data中定義好的兩個(gè)變量。代碼如下。
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文件中加入這兩個(gè)組件,將數(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>二 后端接口接受小程序請求并返回?cái)?shù)據(jù)
后端來說比較簡單,先在controller層寫好和前端請求地址對應(yīng)的方法,然后再service層寫好對應(yīng)的邏輯方法,即根據(jù)shopId查詢車源和求購數(shù)量,因?yàn)槲业膕pringboot項(xiàng)目使用了mybatis和mybatis-generator插件,所以實(shí)體類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)文章
Javascript 中 null、NaN和undefined的區(qū)別總結(jié)
js中的數(shù)據(jù)類型有undefined,boolean,number,string,object等5種,前4種為原始類型,第5種為引用類型,接下來與大家分享下它們之間的區(qū)別2013-04-04
canvas實(shí)現(xiàn)手機(jī)端用來上傳用戶頭像的代碼
這篇文章主要介紹了canvas實(shí)現(xiàn)手機(jī)端用來上傳用戶頭像的代碼代碼簡單易懂非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
vue 集成騰訊地圖實(shí)現(xiàn)api(附DEMO)
之前項(xiàng)目使用騰訊地圖,不利于開發(fā)者查找,這篇文章主要介紹了vue 集成騰訊地圖實(shí)現(xiàn)api,具有一定的參考價(jià)值,感興趣的可以了解下2021-07-07
JavaScript中Form表單技術(shù)匯總(推薦)
這篇文章主要介紹了JavaScript中Form表單技術(shù)的相關(guān)資料,包括簡單的表單驗(yàn)證和正則表達(dá)式驗(yàn)證,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
70+漂亮且極具親和力的導(dǎo)航菜單設(shè)計(jì)國外網(wǎng)站推薦
網(wǎng)站可用性是任何網(wǎng)站的基本要素,而可用的導(dǎo)航更是網(wǎng)站所必需的要素之一。導(dǎo)航?jīng)Q定了用戶如何與網(wǎng)站進(jìn)行交互。如果沒有了可用的導(dǎo)航,那么網(wǎng)站內(nèi)容就會變得毫無用處。2011-09-09
JS驗(yàn)證圖片格式和大小并預(yù)覽的簡單實(shí)例
下面小編就為大家?guī)硪黄狫S驗(yàn)證圖片格式和大小并預(yù)覽的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10

