WeChat Mini-Programm implementiert den Likes-Dienst

WeChat Mini-Programm implementiert den Likes-Dienst

In diesem Artikel wird der spezifische Code für das WeChat-Applet zur Implementierung des ähnlichen Geschäfts als Referenz bereitgestellt. Der spezifische Inhalt ist wie folgt

1. Wirkung

2. Umsetzung

1. Logik

1. Beim Anmelden werden Benutzerdaten lokal zwischengespeichert. Beim Onload werden Benutzerinformationen lokal abgerufen und in data.userInfo gespeichert
2. Bestimmen Sie, ob die _openid des Benutzers in der von loveList zurückgegebenen Liste enthalten ist. Wenn ja, brechen Sie das Like ab. Wenn nicht, fügen Sie den Spitznamen zu loveList hinzu.
3. Im Folgenden wird das NickName-Urteil verwendet, das später für die Verwendung des _openid-Urteils optimiert wird

2.wxml

<!-- 
 wx:index = "index": Alle Positionen können nach der Listenschleife auf den Index zugreifen -->
<Ansichtsklasse="Element" wx:für="{{Liste}}" wx:index = "Index">
 <Ansichtsklasse="links">
 <Bildklasse="Avatar"></Bild>
 </Ansicht>
 <Ansichtsklasse="rechts">
 <view class="nickname">{{item.nickName}}</view>
 <view class="content">{{item.content}}</view>
 <Klasse anzeigen="Bildliste">
  <image class="image" wx:for="{{item.imageList}}"></image>
 </Ansicht>
 <Ansichtsklasse="Zeitbereich">
  <view class="Zeit">{{item.Zeit}}</view>
  <Ansicht>
  <!--
   Datenindex="{{index}}"
   1. Nach dem Setzen wird es in currentTarget.dataset in der Callback-Funktion angezeigt -->
  <image class="operation-button" src="../../images/caozuo.png" catchtap="showOperationPannel" data-index="{{index}}"></image>
  <!-- Bestimmen Sie, ob der aktuelle Index mit dem Datenträgerindex übereinstimmt -->
  <view class="operation-pannel" wx:if="{{showOperationPannelIndex == index}}">
   <!-- Index und Klickfunktion festlegen -->
   <view class="tab" catchtap="clickLove" data-index="{{index}}">
   <Bild Klasse="Bild" src="../../images/love-white.png"></Bild>
   <text>Gefällt mir</text>
   </Ansicht>
   <Ansichtsklasse="Tabulator">
   <image class="image" src="../../images/comment-white.png"></image>
   <text>Kommentare</text>
   </Ansicht>
  </Ansicht>
  </Ansicht>
  
 </Ansicht>
 <Ansichtsklasse="Liebeskommentar">
  <!-- 
  item.loveList = wiederhole item.loveList
  <Ansicht Klasse="Liebe" wx:if="{{item.loveList.length > 0}}">
  <image class="love-icon" src="../../images/love-blue.png"></image>
  <text class="love-nickname" wx:for="{{item.loveList}}">Alter Meister Lanling Wang</text>
  </Ansicht>
  -->
  <Ansicht Klasse="Liebe" wx:if="{{item.loveList.length > 0}}">
  <image class="love-icon" src="../../images/love-blue.png"></image>
  <!-- Liebe steht nicht im Konflikt mit den Elementen in der gesamten Schleife -->
  <text Klasse="Liebes-Spitzname" wx:for-items="{{item.loveList}}"
  wx:for-item = "Liebe"
  >{{love.nickName}}</text>
  </Ansicht>
  <view class="Kommentar" wx:if="{{item.commentList.length > 0}}">
  <Ansicht wx:for-items="{{item.commentList}}"
  wx:for-item = "Kommentar">
   <text class="comment-nickname">{{comment.nickName}}</text>
   <text class="comment-content">{{comment.content}}</text>
  </Ansicht>
  </Ansicht>
 </Ansicht>
 </Ansicht>
</Ansicht>

3.js

// Seiten/Kreis/Liste.js
var das;
Seite({

 /**
 * Ausgangsdaten der Seite */
 Daten: {
 Benutzerinfo:null,
 Liste:[],
 // Der Index des aktuellen Klickoperationsfelds, ein Feld für jeden Freundeskreis showOperationPannelIndex:-1,
 },

 /**
 * Lebenszyklusfunktion - auf Seitenladen warten*/
 onLoad: Funktion (Optionen) {
 das = dies;
 für (var i = 1; i < 10; i++) {
  // Definieren Sie ein Objekt zum Speichern von Daten var circleData = {};
  circleData.nickName = "Freund-" + i;
  circleData.content = "Freunde posten Inhalte-" + i;
  KreisDaten.Zeit = "2020-05-0" + i;

  //Bilderliste var imageList = [];
  // Wie Liste var loveList = [];
  // Kommentarliste var commentList = [];


  // Diese drei Arrays werden circleData zugewiesen
  circleData.imageList = Bilderliste;
  Kreisdaten.Liebesliste = Liebesliste;
  circleData.commentList = Kommentarliste;

  // Werte den 3 Arrays zuweisen for (var j = 1; j < i; j++) {
  //Bildpfad, Platzhalter imageList.push(j);
  // loveList, definiere loveData-Objekt, var loveData = {};
  loveData.nickName = 'Gefällt mir-' + j;
  // Fügen Sie das Likes-Array zur LoveList hinzu
  Liebesliste.push(Liebesdaten);

  //Kommentardaten var commentData = {};
  commentData.nickName = "Lanling King-" + j + ":";
  commentData.content = "Kommentarinhalt-" + j;
  // Daten hinzufügen commentList.push(commentData);
  }

  das.Daten.Liste.push(circleData);
 }
 // Rendere that.setData({ erneut
  Liste: diese.Daten.Liste
 })
 //Benutzerinformationen abrufen wx.getStorage({
  Schlüssel: 'Benutzerinfo',
  Erfolg(res){
  //In Objekt konvertieren console.log("getStorage success:",JSON.parse(res.data));
  dass.setData({
   Benutzerinfo:JSON.parse(res.data)
  })
  }
 })
 },
 //Steuerung der Anzeige des Bedienfelds showOperationPanel(e){
 console.log("showOperationPanel",e);
 // Den angeklickten Index abrufen var index = e.currentTarget.dataset.index;
 // Wenn es angezeigt wird, schließen Sie es, if(that.data.showOperationPannelIndex == index){
  dass.setData({
  // Index beginnt bei 0 showOperationPanelIndex:-1
  })
 }
 anders{
  dass.setData({
  // Auf den Index des aktuellen Klicks setzen showOperationPannelIndex:index
  })
 }
 
 },
 // Wie die Funktion clickLove(e){
 konsole.log(e);
 var index = e.currentTarget.dataset.index;
 // Diese Daten herausholen var circleData = that.data.list[index];
 var Liebesliste = Kreisdaten. Liebesliste;
 var istHaveLove = false;
 für(var i = 0; i < loveList.length; i++){
  wenn(das.daten.userInfo.nickName == loveList[i].nickName){
  istHaveLove = wahr;
  // „Gefällt mir“-Angaben entfernen loveList.splice(i,1);
  brechen;
  }
 }

 wenn(!istHabeLiebe){
  loveList.push({nickName:that.data.userInfo.nickName});
 }
 dass.setData({
  Liste:diese.Datenliste,
  // Schließen Sie das „Gefällt mir“- und Kommentarfeld. showOperationPannelIndex:-1
 })

 },
 
})

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Das WeChat-Miniprogramm implementiert ähnliche und ungleiche Funktionen
  • Das WeChat-Applet implementiert die „Gefällt mir“- und „Gefällt mir“-Funktionen auf der Listenseite
  • WeChat-Applet-Projektzusammenfassung: Like-, Lösch-, Listen- und Freigabefunktion
  • Methode für das WeChat-Applet zum Realisieren der Like-Funktion basierend auf dem lokalen Cache
  • Das WeChat-Applet-Widget realisiert Live-Übertragungen wie einen Blaseneffekt basierend auf Canvas

<<:  Detaillierte Erläuterung der FTP-Serverkonfiguration und 425-Fehler- und TLS-Warnlösungen für FileZilla Server

>>:  Teilen Sie 9 Linux Shell Scripting Tipps für die Praxis und Interviews

Artikel empfehlen

Beispielcode zur Implementierung des wellenförmigen Wasserballeffekts mit CSS

Heute habe ich einen neuen CSS-Spezialeffekt gele...

So lösen Sie das Problem der Groß-/Kleinschreibung bei MySQL-Abfragen

Frage Als ich kürzlich ein praktisches Projekt mi...

Detaillierte Erklärung der Zeichensätze und Validierungsregeln in MySQL

1Mehrere gängige Zeichensätze Zu den gängigsten Z...

Reflexion und Proxy in Front-End-JavaScript

Inhaltsverzeichnis 1. Was ist Reflexion? 2. Refle...

UL-Listen-Tag-Design für Webseiten mit mehrspaltigem Layout

Als ich vor ein paar Tagen ein dreispaltiges Layou...

Verwenden Sie Docker, um ein Git-Image mithilfe des Klon-Repositorys zu erstellen

Überblick Ich verwende Docker seit über einem Jah...

CSS realisiert den Maskeneffekt, wenn die Maus über das Bild bewegt wird

1. Setzen Sie den HTML-Code der Maskenebene und d...

Fallstricke basierend auf MySQL-Standardsortierregeln

Der Standardtyp varchar in MySQL ist case-insensi...

Erfahrungsaustausch zur Optimierung von MySQL-Big-Data-Abfragen (empfohlen)

Ernsthafte MySQL-Optimierung! Wenn die MySQL-Date...

Grundlagen der MySQL-Speicher-Engine

Im vorherigen Artikel haben wir über MySQL-Transa...

Ein einfaches Beispiel für die MySQL-Suche nach Daten im Umkreis von N Kilometern

Gemäß dem Koeffizienten von Pi und dem Radius der...