微信小程序購(gòu)物車功能怎么開(kāi)發(fā)
微信小程序購(gòu)物車功能怎么開(kāi)發(fā)
微信小程序購(gòu)物車功能是需要微信小程序開(kāi)發(fā)者開(kāi)發(fā)出來(lái)的哦,那么微信小程序購(gòu)物車功能怎么開(kāi)發(fā)呢?以下是學(xué)習(xí)啦小編為您帶來(lái)的關(guān)于微信小程序購(gòu)物車功能,希望對(duì)您有所幫助。
微信小程序購(gòu)物車功能
以往的購(gòu)物車,基本都是通過(guò)大量的 DOM 操作來(lái)實(shí)現(xiàn)。微信小程序其實(shí)跟 vue.js 的用法非常像,接下來(lái)就看看小程序可以怎樣實(shí)現(xiàn)微信購(gòu)物車功能。效果如下圖所示:
單選、全選和取消,而且會(huì)隨著選中的商品計(jì)算出總價(jià),單個(gè)商品購(gòu)買數(shù)量的增加和減少
刪除商品。當(dāng)購(gòu)物車為空時(shí),頁(yè)面會(huì)變?yōu)榭召?gòu)物車的布局。
根據(jù)設(shè)計(jì)圖,我們可以先實(shí)現(xiàn)靜態(tài)頁(yè)面。接下來(lái),再看看一個(gè)購(gòu)物車需要什么樣的微信數(shù)據(jù)。
首先是一個(gè)商品列表(carts),列表里的單品需要:商品圖(image),商品名(title),單價(jià)(price),數(shù)量(num),是否選中(selected),商品id(id)
然后左下角的全選,需要一個(gè)字段(selectAllStatus)表示是否全選了
右下角的總價(jià)(totalPrice)
最后需要知道購(gòu)物車是否為空(hasList)
知道了需要這些數(shù)據(jù),在頁(yè)面初始化的時(shí)候我們先定義好這些。
微信代碼如下:
購(gòu)物車列表數(shù)據(jù)我們一般是通過(guò)請(qǐng)求服務(wù)器拿到的數(shù)據(jù),所以我們放在生命周期函數(shù)里給 carts 賦值。想到每次進(jìn)到購(gòu)物車都要獲取購(gòu)物車的最新?tīng)顟B(tài),而onLoad和onReady只在初始化的時(shí)候執(zhí)行一次,所以我需要把請(qǐng)求放在 onShow 函數(shù)里。(這里先拿點(diǎn)假數(shù)據(jù)冒充一下吧)
布局wxml
修好之前寫好的靜態(tài)頁(yè)面,綁定數(shù)據(jù)。
雖然一個(gè)購(gòu)物車功能比較簡(jiǎn)單,但是里面涉及到微信小程序的知識(shí)點(diǎn)還是比較多的,適合新手練習(xí)掌握。
選擇事件:
點(diǎn)擊時(shí)選中,再點(diǎn)擊又變成沒(méi)選中狀態(tài),其實(shí)就是改變 selected 字段。通過(guò) data-index="{{index}}" 把當(dāng)前商品在列表數(shù)組中的下標(biāo)傳給事件。
全選事件:
全選就是根據(jù)全選狀態(tài) selectAllStatus 去改變每個(gè)商品的 selected。
增減數(shù)量:
點(diǎn)擊+號(hào),num加1,點(diǎn)擊-號(hào),如果num > 1,則減1。
刪除商品:
點(diǎn)擊刪除按鈕則從購(gòu)物車列表中刪除當(dāng)前元素,刪除之后如果購(gòu)物車為空,改變購(gòu)物車為空標(biāo)識(shí)hasList為false。
猜你喜歡: