最近在開發一個小程序,想添加一個點贊功能,那到底怎么實現呢?因為要和后臺服務器同步數據,所以這個我想了好幾天應該怎么實現點贊和取消點贊的邏輯,經過兩天的實踐調試,最終實現了。
思路如下:
1.找到對應文章列表的id
(我用的是 wx:for 列表渲染 加 template 模板來實現文章列表的,所以如果沒找到對應的 id ,點贊時可能會出現點擊一個列表,別的列表也會發生變化的事件)
2.在前端利用 wx.setStorageSync 保存對應的列表點贊的 id 的緩存
后面通過緩存判斷該文章是否已經點過贊,避免重復點贊
3.點贊和取消點贊要有對應的數量上 +1 或 -1 的變化
4.后臺服務器的數據同步變化
代碼如下
//點贊處理函數(xx.js文件) zan: function (item_id) { var that = this; var show;//傳遞到數據庫點贊的狀態 var cookie_mid = wx.getStorageSync('zan')||[];//獲取全部點贊的mid var newmessage = []; for (var i = 0; i < that.data.item_list.length; i++) { if (that.data.item_list[i].id == item_id) {//遍歷找到對應的id var num = that.data.item_list[i].like_num;//當前贊數 var isshow; //點贊的狀態 if (cookie_mid.includes(item_id)) {//說明已經點過贊,取消贊 for (var j = 0; j < cookie_mid.length; j++) { if (cookie_mid[j] == item_id) { cookie_mid.splice(j, 1);//刪除取消贊的mid } } --num; isshow = 0;//點贊的狀態 that.setData({ [`item_list[${i}].like_num`]: num, //es6模板語法(反撇號字符) [`item_list[${i}].favor_img`]: "../../image/favor.png", }) wx.setStorageSync('zan', cookie_mid); wx.showToast({ title: "取消點贊!", icon: 'none' }) //console.log("前端取消點贊"+isshow) } else { isshow = 1;//點贊的狀態 ++num; that.setData({ [`item_list[${i}].like_num`]: num,//es6模板語法(反撇號字符) [`item_list[${i}].favor_img`]: "../../image/favor_press.png", }) cookie_mid.unshift(item_id);//新增贊的mid wx.setStorageSync('zan', cookie_mid); wx.showToast({ title: "點贊成功!", icon: 'none' }) //console.log("前端點贊成功" + isshow) } //console.log(cookie_mid); //點贊數據同步到數據庫 wx.request({ url: 'https://xxx.xxxx.xxx/zan.php', method: 'POST', header: { 'Content-Type': 'application/x-www-form-urlencoded' }, data: { id: item_id, show: isshow, }, success: function (res) { //console.log("show:" +show) //console.log(res.data); } }) } } },/** * 點贊 */ favorclick: function (options){ var item_id = options.currentTarget.dataset.id;//此處找到列表的id //console.log(item_id);//列表id this.zan(item_id); },
注意點:
1. splice() 和 unshif() 函數是對數組的某一元素的刪除和在原本的基礎上添加元素,詳細用法可自行查找。
2. [item_list[${i}].like_num]: num, 是es6模板語法(注意是反撇號字符)因為常規寫法 ‘item_list[i].like_num': num 在數組動態 setData 時會報如下錯誤
成人av番号网| 91免费看视频.| 久久精品中文字幕一区| 色婷婷久久av| 日韩一区二区三区xxxx| 国产一区二区三区视频免费| 最好看的2019年中文视频| 久久久免费电影| 日韩精品免费在线视频| 亚洲国产欧美在线成人app| 欧美国产日韩精品| 欧美大片免费观看| 亚洲精品女av网站| 久久综合色影院| 国产欧美精品一区二区三区介绍| 国产亚洲人成网站在线观看| 欧美成人精品在线观看| 久久精品国产69国产精品亚洲| 日韩精品久久久久| 亚洲va欧美va国产综合久久| 亚洲欧洲日产国产网站| 国产精品欧美亚洲777777| 在线观看91久久久久久| 亚洲男人第一网站| 欧美激情xxxxx| 不卡毛片在线看| 国产欧美中文字幕| 日韩成人激情视频| 青青久久av北条麻妃黑人| 中文字幕av日韩| 国产精品男人的天堂| 亚洲欧美中文字幕在线一区| 亚洲成人黄色网| 亚洲免费精彩视频| 亚洲女性裸体视频| 日韩禁在线播放| 国产91精品视频在线观看| 日韩av影视综合网| 91色琪琪电影亚洲精品久久| 中文字幕亚洲天堂| 欧美第一淫aaasss性| 久久久久久九九九| 国产精品色午夜在线观看| 国产日韩欧美黄色| 久久久久久国产免费| 亚洲天堂精品在线| 狠狠躁夜夜躁人人躁婷婷91| 国产丝袜精品视频| 色先锋资源久久综合5566| 日日噜噜噜夜夜爽亚洲精品| 久久精品一本久久99精品| 综合久久五月天| 国产男女猛烈无遮挡91| 亚洲精品国产品国语在线| 国产精品偷伦视频免费观看国产| 国产精品一区专区欧美日韩| 亚洲国产高清高潮精品美女| 91欧美精品午夜性色福利在线| 国产精品一区久久| 精品久久久久久亚洲国产300| 中文字幕亚洲激情| 久久免费成人精品视频| 亚洲美女av黄| 亚洲欧美日韩成人| 亚洲自拍偷拍色图| 在线播放日韩av| 一个色综合导航| 精品欧美aⅴ在线网站| 欧美激情在线有限公司| 久久久久久久激情视频| 69影院欧美专区视频| 欲色天天网综合久久| 在线性视频日韩欧美| 国产欧美精品久久久| 成人黄在线观看| 久久综合国产精品台湾中文娱乐网| 伊人伊人伊人久久| 成人春色激情网| 成人国产在线激情| 欧美另类69精品久久久久9999| 久久综合久久八八| 欧美日韩国产丝袜另类| 国产精品jvid在线观看蜜臀| 亚洲国产免费av| 中文字幕日韩av综合精品| 中文字幕自拍vr一区二区三区| 亚洲欧美国产一区二区三区| 亚洲综合在线做性| www日韩中文字幕在线看| 欧美日韩第一页| 欧美激情视频一区二区三区不卡| 日韩av在线网站| 亚洲视频专区在线| 久久久人成影片一区二区三区观看| 欧美区二区三区| 国产精品日韩在线| 亚洲欧美中文日韩在线| 欧美性生交xxxxxdddd| 欧美精品videosex性欧美| 欧美日韩国产丝袜另类| 国产精品国产自产拍高清av水多| 国产免费一区二区三区在线观看| 亚洲成人在线网| 色妞色视频一区二区三区四区| 性欧美亚洲xxxx乳在线观看| 97色在线观看| 欧美日韩国产一中文字不卡| 欧美激情视频一区二区三区不卡| 国产精品丝袜视频| 欧美一级黑人aaaaaaa做受| 久久久久久伊人| 久久久av亚洲男天堂| 亚洲а∨天堂久久精品喷水| 亚洲欧美中文字幕在线一区| 91av视频导航| 福利二区91精品bt7086| 这里只有视频精品| 久久久影视精品| 欧美激情精品久久久久久免费印度| 亚洲成在人线av| 国产精品一区二区久久| 精品亚洲va在线va天堂资源站| 欧美一级在线亚洲天堂| 青青在线视频一区二区三区| 国语自产精品视频在免费| 欧美日本国产在线| 国产日韩av在线播放| 欧美黑人xxxx| 一区二区三区国产视频| 欧美日韩国产精品一区| 日韩小视频在线观看| 在线观看亚洲视频| 欧美亚洲第一页| 91av在线看| 国产精品嫩草影院久久久| 一区二区三区视频在线| 成人网址在线观看| 久久久久久尹人网香蕉| 日韩在线中文字| 久久久999国产精品| 欧美一级在线播放| 色噜噜狠狠色综合网图区| 亚洲人午夜精品免费| 两个人的视频www国产精品| 国产精品美女av| 欧美日韩国产综合视频在线观看中文| 欧美精品999| 国产小视频91| 日韩精品视频在线播放| 欧美激情喷水视频| www欧美日韩| 18一19gay欧美视频网站| 亚洲第一在线视频| 国产欧美亚洲视频| 国产精品99久久久久久人| 日本韩国在线不卡| 在线观看中文字幕亚洲| 亚洲精品www久久久久久广东| 欧美在线视频在线播放完整版免费观看| 日韩欧美中文字幕在线播放| 国产精品扒开腿做爽爽爽男男| 久久综合伊人77777蜜臀| 精品小视频在线| 成人国产精品av|