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

Vue+js realisiert Video-Ein- und Ausblendeffekte

Vue+js realisiert das Ein- und Ausblenden des Vid...

4 flexible SCSS-Kompilierungsausgabestile

Vielen Leuten wird das Kompilieren erklärt, sobal...

Einführung in die neuen Funktionen von ECMAscript

Inhaltsverzeichnis 1. Standardwerte für Funktions...

Detaillierte Erläuterung der Angular-Routing-Grundlagen

Inhaltsverzeichnis 1. Routing-bezogene Objekte 2....

Ein kurzer Vortrag über Responsive Design

1. Was ist Responsive Design? Responsive Design b...

Tutorial zur Installation und Konfiguration von MySQL 5.7.16 ZIP-Paketen

In diesem Artikel finden Sie das Installations- u...

MySQL-Optimierung: Cache-Optimierung

Ich freue mich, dass einige Blogger meinen Artike...

Webdesign-Tipps für Formular-Eingabefelder

1. Gestricheltes Feld, wenn die Abbrechen-Schaltfl...

Weitere Möglichkeiten zur Verwendung von spitzen Klammern in Bash

Vorwort In diesem Artikel werden wir weitere Verw...

Vue+Flask realisiert Videosynthesefunktion (Drag & Drop-Upload)

Inhaltsverzeichnis Wir haben in einem früheren Ar...

Reines HTML+CSS, um einen Tippeffekt zu erzielen

In diesem Artikel wird hauptsächlich der durch re...

Lösungen für häufige Probleme bei der Verwendung von Elasticsearch

1. Die Verwendung mit Redis führt zu Startkonflik...

Warum verwendet der MySQL-Datenbankindex den B+-Baum?

Bevor wir weiter analysieren, warum der MySQL-Dat...

Detaillierte Erklärung zum Erstellen geplanter MySql-Aufgaben in Navicat

Detaillierte Erklärung zum Erstellen geplanter My...