亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 小程序 > 正文

小程序實現列表點贊功能

2020-03-21 16:08:19
字體:
來源:轉載
供稿:網友

最近在開發一個小程序,想添加一個點贊功能,那到底怎么實現呢?因為要和后臺服務器同步數據,所以這個我想了好幾天應該怎么實現點贊和取消點贊的邏輯,經過兩天的實踐調試,最終實現了。

思路如下:

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 時會報如下錯誤

 

3. ++num 和 –num 不要寫成 num++ 和 num– , 我就犯了這個錯誤,導致點贊時數量變化總是出錯,搞得我檢查了 n 多次邏輯運算應該沒錯啊,頭暈得很。(怪自己基礎不夠牢?。。。?nbsp;
4. 模板列表渲染如何能找到id呢?在 .wxml 文件中加上 {{id}} 即可,前提是你 wx:for 的 data 中 包含 id 這個字段:

小程序,點贊

.wxml文件中

小程序,點贊

5.這樣實現基本的點贊功能了,但是頁面刷新后,點贊圖標又恢復了原始樣式,這就需要在刷新時進一步判斷了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
78m国产成人精品视频| 亚洲国产精品yw在线观看| 国产69精品久久久久9| 国产精品日韩在线一区| 2019中文字幕在线免费观看| 色yeye香蕉凹凸一区二区av| 色一区av在线| 法国裸体一区二区| 亚洲欧美中文在线视频| 国产精品视频xxx| 国产成人av网址| 欧美人在线观看| 久久久久国产一区二区三区| …久久精品99久久香蕉国产| 日韩亚洲精品视频| 国产亚洲美女精品久久久| 热久久免费视频精品| 欧美精品免费在线观看| 午夜精品在线观看| 欧美成人精品在线视频| 日本精品va在线观看| 欧美日韩国产一中文字不卡| 久久久成人精品视频| 亚洲a在线播放| 色偷偷噜噜噜亚洲男人的天堂| 国产精品专区第二| 国产成人短视频| 日韩高清欧美高清| 欧美成人精品在线播放| 欧美激情中文字幕在线| 欧美与黑人午夜性猛交久久久| 日本国产一区二区三区| 91精品国产综合久久香蕉的用户体验| 国产精品一区二区3区| 精品调教chinesegay| 高清欧美电影在线| 亚洲第一区在线观看| 国产免费亚洲高清| 欧洲s码亚洲m码精品一区| 91亚洲精品在线观看| 国产精品色午夜在线观看| 久久久久久久国产精品| 欧美日韩亚洲一区二区三区| 日韩电影大片中文字幕| 亚洲综合在线中文字幕| 91人人爽人人爽人人精88v| 国产精品在线看| 欧美xxxx14xxxxx性爽| 亚洲乱码国产乱码精品精| 欧美日韩国产一中文字不卡| 国产精品美女主播| 欧美日韩激情小视频| 国产欧美 在线欧美| 午夜精品久久久99热福利| 中文字幕不卡在线视频极品| 亚洲高清一二三区| 亚洲va欧美va在线观看| 91麻豆国产语对白在线观看| 久久久久久久久久久国产| 国产精自产拍久久久久久| 国产视频亚洲精品| 欧美香蕉大胸在线视频观看| 精品中文字幕乱| 98精品国产自产在线观看| 欧美激情一区二区久久久| 亚洲一区国产精品| 成人网页在线免费观看| 91精品久久久久久久久中文字幕| 亚洲欧洲国产一区| 国产精品爽爽爽| 亚洲一区二区三区在线免费观看| 国产精品久久久久久久久免费| 亚洲男人第一网站| 免费91在线视频| 国产精品专区h在线观看| 欧美激情精品久久久久| 久久国产精品亚洲| 97在线视频免费观看| 久久久午夜视频| 美女久久久久久久| 91精品国产自产在线观看永久| 欧美精品久久久久久久免费观看| 国产在线观看一区二区三区| 欧美福利视频网站| 国产精品嫩草影院一区二区| 亚洲自拍偷拍网址| 久久精品国产99国产精品澳门| 国产成人鲁鲁免费视频a| 欧美一区二区大胆人体摄影专业网站| 欧美激情久久久久| 免费不卡欧美自拍视频| 亚洲美女黄色片| 国产精品极品美女粉嫩高清在线| 欧美巨大黑人极品精男| 91极品视频在线| 欧美精品videosex性欧美| 国产精品久久视频| 国产成人+综合亚洲+天堂| 国产高清视频一区三区| 欧美精品九九久久| 欧美性xxxxxx| 国产亚洲精品久久久久久777| 亚洲九九九在线观看| 国产一区二区香蕉| 免费99精品国产自在在线| 97人人模人人爽人人喊中文字| 自拍亚洲一区欧美另类| 欧美激情精品久久久久久| 按摩亚洲人久久| 精品国内亚洲在观看18黄| 日韩在线观看免费全| 成人一区二区电影| 欧美视频在线观看 亚洲欧| 国产精品流白浆视频| 精品久久久久久电影| 自拍偷拍亚洲精品| 色av吧综合网| 国产一区二区黑人欧美xxxx| 日本电影亚洲天堂| 日韩男女性生活视频| 韩曰欧美视频免费观看| 久久中文字幕国产| 国产精品揄拍一区二区| 青青久久av北条麻妃海外网| 91精品国产成人www| 茄子视频成人在线| 久久久久久久电影一区| 色妞久久福利网| 在线观看视频亚洲| 亚洲精品第一页| 日韩综合中文字幕| 国产狼人综合免费视频| 国产精欧美一区二区三区| 国产精品2018| 亚洲国产日韩欧美在线动漫| 2020国产精品视频| 亚洲高清福利视频| 亚洲国产精品人人爽夜夜爽| 国产日韩精品一区二区| 国产精品老牛影院在线观看| 中文字幕国产亚洲2019| 中文日韩在线观看| 国外色69视频在线观看| 4p变态网欧美系列| 欧美另类老肥妇| 久久久久久国产精品久久| 91精品啪在线观看麻豆免费| 久久久久久久国产| 国产成人福利网站| 亚洲国产美女精品久久久久∴| 91成人在线观看国产| 久久久成人av| 久久久久久久久中文字幕| 日韩免费黄色av| 性色av一区二区三区在线观看| 北条麻妃在线一区二区| 狠狠躁夜夜躁人人爽超碰91| 亚洲精品成人久久电影| 国产亚洲a∨片在线观看| 成人黄色免费网站在线观看| 在线观看亚洲视频| 日韩大陆欧美高清视频区| 午夜精品久久久久久久99热| 欧美午夜片在线免费观看|