Inhaltsverzeichnis
Hintergrund
Implementierungsprinzip
2. Suchen Sie den Indexwert basierend auf dem Offset
3. Berechnen Sie startIndex und endIndex
Der js-Code lautet wie folgt:
参考资料
总结
Heim WeChat-Applet Mini-Programmentwicklung Ausführliche Erklärung zur Implementierung einer virtuellen Liste im WeChat-Applet

Ausführliche Erklärung zur Implementierung einer virtuellen Liste im WeChat-Applet

Sep 07, 2020 pm 03:48 PM
微信小程序

Ausführliche Erklärung zur Implementierung einer virtuellen Liste im WeChat-Applet

【Verwandte Lernempfehlungen: WeChat Mini-Programm-Tutorial

Hintergrund

Das Miniprogramm wird in vielen Szenarien auf lange Listen von Interaktionen stoßen, wenn eine Seite zu viele WXML-Knoten rendert, was dazu führt Verzögerung und weißer Bildschirm auf der Miniprogrammseite. Die Hauptgründe sind wie folgt:

1. Die Menge der Listendaten ist groß und es dauert lange, setData zu initialisieren und die Rendering-Liste wxml zu initialisieren.

2 Der virtuelle Baum und die Diff-Operation des alten Baums müssen jedes Mal erstellt werden.

3 Es werden viele WXML-Knoten gerendert Der belegte Speicher ist hoch.

Die Scroll-Ansicht des WeChat-Applets selbst ist nicht für lange Listen optimiert. Die offizielle Recycling-Ansicht der Komponente ist eine lange Listenkomponente, die der virtuellen Liste ähnelt. Jetzt analysieren wir das Prinzip der virtuellen Liste und implementieren eine virtuelle Liste eines kleinen Programms von Grund auf.

Implementierungsprinzip

Zunächst müssen wir verstehen, was eine virtuelle Liste ist. Dies ist eine Initialisierung, die nur den „sichtbaren Bereich“ und seine nahegelegenen Dom-Elemente lädt und den „sichtbaren Bereich“ nur durch Wiederverwendung von Dom-Elementen rendert während des Scrollvorgangs“ und der Scrolling-Listen-Frontend-Optimierungstechnologie der nahegelegenen Dom-Elemente. Im Vergleich zur herkömmlichen Listenmethode kann eine extrem hohe anfängliche Rendering-Leistung erzielt werden und während des Bildlaufvorgangs wird nur eine ultraleichte DOM-Struktur beibehalten.

Die wichtigsten Konzepte virtueller Listen:

  • Scrollbarer Bereich: Wenn beispielsweise die Höhe des Listencontainers 600 beträgt und die Summe der Höhen der internen Elemente die Höhe des Containers überschreitet, kann dieser Bereich sein gescrollt, was der „scrollbare Bereich“ ist der „visuelle Bereich“.

  • Der Kern der Implementierung einer virtuellen Liste besteht darin, das Scroll-Ereignis abzuhören und den oberen Abstand sowie die vorderen und hinteren Abfangindexwerte der Datenwiedergabe des „visuellen Bereichs“ durch den Scroll-Distanz-Offset und die dynamische Anpassung anzupassen Summe der Größen der gescrollten Elemente, totalSize. Die Implementierungsschritte sind wie folgt:

  • 1 Hören Sie sich das scrollTop/scrollLeft des Scroll-Ereignisses an und berechnen Sie den Indexwert startIndex des Startelements des „sichtbaren Bereichs“ und den Indexwert endIndex des Endelements; den Versatz des Elements und wenden Sie ihn auf den scrollbaren Bereich und das Element an.

1. Breite/Höhe des Listenelements und Scroll-Offset

In der virtuellen Liste wird der „scrollbare Bereich“ basierend auf der Breite/Höhe jedes Listenelements berechnet und muss möglicherweise angepasst werden. Ja, Definieren Sie die Funktion itemSizeGetter, um die Breite/Höhe des Listenelements zu berechnen.
itemSizeGetter(itemSize) {      return (index: number) => {        if (isFunction(itemSize)) {          return itemSize(index);
        }        return isArray(itemSize) ? itemSize[index] : itemSize;
      };
    }复制代码
Nach dem Login kopieren
Ausführliche Erklärung zur Implementierung einer virtuellen Liste im WeChat-AppletWährend des Scrollvorgangs wird die Elementgröße der nicht angezeigten Listenelemente nicht berechnet. Zu diesem Zeitpunkt wird eine geschätzte Listenelementgröße verwendet. Der Zweck besteht darin, die nicht gemessene Elementgröße bei der Berechnung der Höhe zu verwenden stattdessen „scrollbarer Bereich“.
getSizeAndPositionOfLastMeasuredItem() {    return this.lastMeasuredIndex >= 0
      ? this.itemSizeAndPositionData[this.lastMeasuredIndex]
      : { offset: 0, size: 0 };
  }

getTotalSize(): number {    const lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem();    return (
      lastMeasuredSizeAndPosition.offset +
      lastMeasuredSizeAndPosition.size +
      (this.itemCount - this.lastMeasuredIndex - 1) * this.estimatedItemSize
    );
  }复制代码
Nach dem Login kopieren
Hier sehen wir, dass die itemSize und der Offset des zuletzt berechneten Listenelements direkt über den Cache abgerufen werden. Dies liegt daran, dass die beiden Parameter jedes Listenelements zwischengespeichert werden.
 getSizeAndPositionForIndex(index: number) {    if (index > this.lastMeasuredIndex) {      const lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem();      let offset =
        lastMeasuredSizeAndPosition.offset + lastMeasuredSizeAndPosition.size;      for (let i = this.lastMeasuredIndex + 1; i <= index; i++) {        const size = this.itemSizeGetter(i);        this.itemSizeAndPositionData[i] = {
          offset,
          size,
        };

        offset += size;
      }      this.lastMeasuredIndex = index;
    }    return this.itemSizeAndPositionData[index];
 }复制代码
Nach dem Login kopieren

2. Suchen Sie den Indexwert basierend auf dem Offset

Während des Scrollvorgangs müssen Sie den Indexwert der ersten im „sichtbaren Bereich“ angezeigten Daten über den Scroll-Offset-Offset berechnen 0. Die itemSize jedes Listenelements wird akkumuliert, bis sie den Offset überschreitet, und der Indexwert kann abgerufen werden. Wenn jedoch die Datenmenge zu groß ist und Scroll-Ereignisse häufig ausgelöst werden, kommt es zu einem großen Leistungsverlust. Glücklicherweise ist die Scrolldistanz der Listenelemente vollständig in aufsteigender Reihenfolge angeordnet, sodass Sie eine binäre Suche in den zwischengespeicherten Daten durchführen können, wodurch die Zeitkomplexität auf O(lgN) reduziert wird.

Der js-Code lautet wie folgt:

  findNearestItem(offset: number) {
    offset = Math.max(0, offset);    const lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem();    const lastMeasuredIndex = Math.max(0, this.lastMeasuredIndex);    if (lastMeasuredSizeAndPosition.offset >= offset) {      return this.binarySearch({        high: lastMeasuredIndex,        low: 0,
        offset,
      });
    } else {      return this.exponentialSearch({        index: lastMeasuredIndex,
        offset,
      });
    }
  }

 private binarySearch({
    low,
    high,
    offset,
  }: {    low: number;
    high: number;
    offset: number;
  }) {    let middle = 0;    let currentOffset = 0;    while (low <= high) {
      middle = low + Math.floor((high - low) / 2);
      currentOffset = this.getSizeAndPositionForIndex(middle).offset;      if (currentOffset === offset) {        return middle;
      } else if (currentOffset < offset) {
        low = middle + 1;
      } else if (currentOffset > offset) {
        high = middle - 1;
      }
    }    if (low > 0) {      return low - 1;
    }    return 0;
  }复制代码
Nach dem Login kopieren

Für die Suche ohne zwischengespeicherte Berechnungsergebnisse verwenden Sie zunächst die exponentielle Suche, um den Suchbereich einzugrenzen, und verwenden Sie dann die binäre Suche.

private exponentialSearch({
    index,
    offset,
  }: {    index: number;
    offset: number;
  }) {    let interval = 1;    while (
      index < this.itemCount &&      this.getSizeAndPositionForIndex(index).offset < offset
    ) {
      index += interval;
      interval *= 2;
    }    return this.binarySearch({      high: Math.min(index, this.itemCount - 1),      low: Math.floor(index / 2),
      offset,
    });
  }
}复制代码
Nach dem Login kopieren

3. Berechnen Sie startIndex und endIndex

Wir kennen die Größe des „sichtbaren Bereichs“ und den rollenden Offset-Offset. Nachdem wir die Anzahl der vorgerenderten Balken overscanCount angepasst haben, können wir den Beginn des „sichtbaren Bereichs“ berechnen. Der Indexwert startIndex des Startelements und der Indexwert endIndex des Endelements lauten wie folgt:

1 Finden Sie den Indexwert, der dem Offset am nächsten kommt. Dieser Wert ist der Indexwert startIndex des Startelements

2. Ermitteln Sie den Indexwert dieses Elements über den Offset und die Größe von startIndex und passen Sie dann den Offset an Endelementindexwert endIndex.

Der js-Code lautet wie folgt:

 getVisibleRange({
    containerSize,
    offset,
    overscanCount,
  }: {    containerSize: number;
    offset: number;
    overscanCount: number;
  }): { start?: number; stop?: number } {    const maxOffset = offset + containerSize;    let start = this.findNearestItem(offset);    const datum = this.getSizeAndPositionForIndex(start);
    offset = datum.offset + datum.size;    let stop = start;    while (offset < maxOffset && stop < this.itemCount - 1) {
      stop++;
      offset += this.getSizeAndPositionForIndex(stop).size;
    }    if (overscanCount) {
      start = Math.max(0, start - overscanCount);
      stop = Math.min(stop + overscanCount, this.itemCount - 1);
    }    return {
      start,
      stop,
    };
}复制代码
Nach dem Login kopieren

3. Hören Sie sich das Scroll-Ereignis an, um einen virtuellen Listen-Scroll zu realisieren.

Jetzt können Sie einen virtuellen Listen-Scroll realisieren, indem Sie auf das Scroll-Ereignis hören und startIndex, endIndex, totalSize und offset dynamisch aktualisieren . Der

js-Code lautet wie folgt:

  getItemStyle(index) {      const style = this.styleCache[index];      if (style) {        return style;
      }      const { scrollDirection } = this.data;      const {
        size,
        offset,
      } = this.sizeAndPositionManager.getSizeAndPositionForIndex(index);      const cumputedStyle = styleToCssString({        position: &#39;absolute&#39;,        top: 0,        left: 0,        width: &#39;100%&#39;,
        [positionProp[scrollDirection]]: offset,
        [sizeProp[scrollDirection]]: size,
      });      this.styleCache[index] = cumputedStyle;      return cumputedStyle;
  },
  
  observeScroll(offset: number) {      const { scrollDirection, overscanCount, visibleRange } = this.data;      const { start, stop } = this.sizeAndPositionManager.getVisibleRange({        containerSize: this.data[sizeProp[scrollDirection]] || 0,
        offset,
        overscanCount,
      });      const totalSize = this.sizeAndPositionManager.getTotalSize();      if (totalSize !== this.data.totalSize) {        this.setData({ totalSize });
      }      if (visibleRange.start !== start || visibleRange.stop !== stop) {        const styleItems: string[] = [];        if (isNumber(start) && isNumber(stop)) {          let index = start - 1;          while (++index <= stop) {
            styleItems.push(this.getItemStyle(index));
          }
        }        this.triggerEvent(&#39;render&#39;, {          startIndex: start,          stopIndex: stop,
          styleItems,
        });
      }      this.data.offset = offset;      this.data.visibleRange.start = start;      this.data.visibleRange.stop = stop;
  },复制代码
Nach dem Login kopieren

在调用的时候,通过render事件回调出来的startIndex, stopIndex,styleItems,截取长列表「可视区域」的数据,在把列表项目的itemSize和offset通过绝对定位的方式应用在列表上

代码如下:

let list = Array.from({ length: 10000 }).map((_, index) => index);

Page({  data: {    itemSize: index => 50 * ((index % 3) + 1),    styleItems: null,    itemCount: list.length,    list: [],
  },
  onReady() {    this.virtualListRef =      this.virtualListRef || this.selectComponent(&#39;#virtual-list&#39;);
  },

  slice(e) {    const { startIndex, stopIndex, styleItems } = e.detail;    this.setData({      list: list.slice(startIndex, stopIndex + 1),
      styleItems,
    });
  },

  loadMore() {
    setTimeout(() => {      const appendList = Array.from({ length: 10 }).map(        (_, index) => list.length + index,
      );
      list = list.concat(appendList);      this.setData({        itemCount: list.length,        list: this.data.list.concat(appendList),
      });
    }, 500);
  },
});复制代码
Nach dem Login kopieren
<view class="container">
  <virtual-list scrollToIndex="{{ 16 }}" lowerThreshold="{{50}}" height="{{ 600 }}" overscanCount="{{10}}" item-count="{{ itemCount }}" itemSize="{{ itemSize }}" estimatedItemSize="{{100}}" bind:render="slice" bind:scrolltolower="loadMore">
    <view wx:if="{{styleItems}}">
      <view wx:for="{{ list }}" wx:key="index" style="{{ styleItems[index] }};line-height:50px;border-bottom:1rpx solid #ccc;padding-left:30rpx">{{ item + 1 }}</view>
    </view>
  </virtual-list>
  {{itemCount}}</view>复制代码
Nach dem Login kopieren
Ausführliche Erklärung zur Implementierung einer virtuellen Liste im WeChat-Applet

参考资料

在写这个微信小程序的virtual-list组件过程中,主要参考了一些优秀的开源虚拟列表实现方案:

  • react-tiny-virtual-list
  • react-virtualized
  • react-window

总结

通过上述解释已经初步实现了在微信小程序环境中实现了虚拟列表,并且对虚拟列表的原理有了更加深入的了解。但是对于瀑布流布局,列表项尺寸不可预测等场景依然无法适用。在快速滚动过程中,依然会出现来不及渲染而白屏,这个问题可以通过增加「可视区域」外预渲染的item条数overscanCount来得到一定的缓解。

想了解更多编程学习,敬请关注php培训栏目!

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Implementierung einer virtuellen Liste im WeChat-Applet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Das Miniprogramm Xianyu WeChat wurde offiziell gestartet Das Miniprogramm Xianyu WeChat wurde offiziell gestartet Feb 10, 2024 pm 10:39 PM

Das offizielle WeChat-Miniprogramm von Xianyu wurde stillschweigend gestartet. Im Miniprogramm können Sie private Nachrichten posten, um mit Käufern/Verkäufern zu kommunizieren, persönliche Informationen und Bestellungen anzuzeigen, nach Artikeln zu suchen usw. Wenn Sie neugierig sind, was ist das Xianyu WeChat Mini? Programm namens? Werfen wir einen Blick darauf. Wie heißt das Xianyu WeChat-Applet? Antwort: Xianyu, Leerlauftransaktionen, Gebrauchtverkäufe, Bewertungen und Recycling. 1. Im Miniprogramm können Sie inaktive Nachrichten posten, mit Käufern/Verkäufern über private Nachrichten kommunizieren, persönliche Informationen und Bestellungen einsehen, nach bestimmten Artikeln suchen usw. 2. Auf der Seite des Miniprogramms gibt es eine Homepage, in der Nähe, Posten Sie Leerlauf, Nachrichten und meine 5 Funktionen. 3. Wenn Sie es nutzen möchten, müssen Sie die WeChat-Zahlung aktivieren, bevor Sie es kaufen können.

Das WeChat-Applet implementiert die Funktion zum Hochladen von Bildern Das WeChat-Applet implementiert die Funktion zum Hochladen von Bildern Nov 21, 2023 am 09:08 AM

WeChat-Applet implementiert Bild-Upload-Funktion Mit der Entwicklung des mobilen Internets ist das WeChat-Applet zu einem unverzichtbaren Bestandteil des Lebens der Menschen geworden. WeChat-Miniprogramme bieten nicht nur eine Fülle von Anwendungsszenarien, sondern unterstützen auch vom Entwickler definierte Funktionen, einschließlich Funktionen zum Hochladen von Bildern. In diesem Artikel wird erläutert, wie die Bild-Upload-Funktion im WeChat-Applet implementiert wird, und es werden spezifische Codebeispiele bereitgestellt. 1. Vorbereitende Arbeiten Bevor wir mit dem Schreiben von Code beginnen, müssen wir die WeChat-Entwicklertools herunterladen und installieren und uns als WeChat-Entwickler registrieren. Gleichzeitig müssen Sie auch WeChat verstehen

Implementieren Sie den Dropdown-Menüeffekt im WeChat-Applet Implementieren Sie den Dropdown-Menüeffekt im WeChat-Applet Nov 21, 2023 pm 03:03 PM

Um den Dropdown-Menüeffekt in WeChat-Miniprogrammen zu implementieren, sind spezifische Codebeispiele erforderlich. Mit der Popularität des mobilen Internets sind WeChat-Miniprogramme zu einem wichtigen Bestandteil der Internetentwicklung geworden, und immer mehr Menschen haben begonnen, darauf zu achten Verwenden Sie WeChat Mini-Programme. Die Entwicklung von WeChat-Miniprogrammen ist einfacher und schneller als die herkömmliche APP-Entwicklung, erfordert jedoch auch die Beherrschung bestimmter Entwicklungsfähigkeiten. Bei der Entwicklung von WeChat-Miniprogrammen sind Dropdown-Menüs eine häufige UI-Komponente, um eine bessere Benutzererfahrung zu erzielen. In diesem Artikel wird detailliert beschrieben, wie der Dropdown-Menüeffekt im WeChat-Applet implementiert wird, und es werden praktische Informationen bereitgestellt

Implementieren Sie Bildfiltereffekte in WeChat-Miniprogrammen Implementieren Sie Bildfiltereffekte in WeChat-Miniprogrammen Nov 21, 2023 pm 06:22 PM

Implementieren von Bildfiltereffekten in WeChat-Miniprogrammen Mit der Popularität von Social-Media-Anwendungen wenden Menschen immer häufiger Filtereffekte auf Fotos an, um den künstlerischen Effekt und die Attraktivität der Fotos zu verstärken. Bildfiltereffekte können auch in WeChat-Miniprogrammen erzielt werden, wodurch Benutzer interessantere und kreativere Fotobearbeitungsfunktionen erhalten. In diesem Artikel wird erläutert, wie Bildfiltereffekte in WeChat-Miniprogrammen implementiert werden, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir die Canvas-Komponente im WeChat-Applet verwenden, um Bilder zu laden und zu bearbeiten. Die Canvas-Komponente kann auf der Seite verwendet werden

Verwenden Sie das WeChat-Applet, um einen Karussellwechseleffekt zu erzielen Verwenden Sie das WeChat-Applet, um einen Karussellwechseleffekt zu erzielen Nov 21, 2023 pm 05:59 PM

Verwenden Sie das WeChat-Applet, um den Karussellwechseleffekt zu erzielen. Das WeChat-Applet ist eine leichtgewichtige Anwendung, die einfach und effizient zu entwickeln und zu verwenden ist. In WeChat-Miniprogrammen ist es eine häufige Anforderung, Karussellwechseleffekte zu erzielen. In diesem Artikel wird erläutert, wie Sie mit dem WeChat-Applet den Karussell-Umschalteffekt erzielen, und es werden konkrete Codebeispiele aufgeführt. Fügen Sie zunächst eine Karussellkomponente zur Auslagerungsdatei des WeChat-Applets hinzu. Sie können beispielsweise den Tag &lt;swiper&gt; verwenden, um den Schalteffekt des Karussells zu erzielen. In dieser Komponente können Sie b übergeben

Implementieren Sie den Bildrotationseffekt im WeChat-Applet Implementieren Sie den Bildrotationseffekt im WeChat-Applet Nov 21, 2023 am 08:26 AM

Um den Bildrotationseffekt im WeChat Mini-Programm zu implementieren, sind spezifische Codebeispiele erforderlich. Das WeChat Mini-Programm ist eine leichtgewichtige Anwendung, die Benutzern umfangreiche Funktionen und eine gute Benutzererfahrung bietet. In Miniprogrammen können Entwickler verschiedene Komponenten und APIs nutzen, um unterschiedliche Effekte zu erzielen. Unter diesen ist der Bildrotationseffekt ein gängiger Animationseffekt, der dem Miniprogramm interessante und visuelle Effekte verleihen kann. Um Bildrotationseffekte in WeChat-Miniprogrammen zu erzielen, müssen Sie die vom Miniprogramm bereitgestellte Animations-API verwenden. Das Folgende ist ein spezifisches Codebeispiel, das zeigt, wie das geht

Implementieren Sie die Schiebelöschfunktion im WeChat-Miniprogramm Implementieren Sie die Schiebelöschfunktion im WeChat-Miniprogramm Nov 21, 2023 pm 06:22 PM

Die Implementierung der Schiebelöschfunktion in WeChat-Miniprogrammen erfordert spezifische Codebeispiele. Aufgrund der Beliebtheit von WeChat-Miniprogrammen stoßen Entwickler während des Entwicklungsprozesses häufig auf Implementierungsprobleme. Unter diesen ist die gleitende Löschfunktion eine häufige und häufig verwendete Funktionsanforderung. In diesem Artikel wird detailliert beschrieben, wie die Schiebelöschfunktion im WeChat-Applet implementiert wird, und es werden spezifische Codebeispiele gegeben. 1. Anforderungsanalyse Im WeChat-Miniprogramm umfasst die Implementierung der Schiebelöschfunktion die folgenden Punkte: Listenanzeige: Um eine Liste anzuzeigen, die verschoben und gelöscht werden kann, muss jedes Listenelement enthalten sein

Wie heißt das Xianyu WeChat-Applet? Wie heißt das Xianyu WeChat-Applet? Feb 27, 2024 pm 01:11 PM

Das offizielle WeChat-Miniprogramm von Xianyu wurde stillschweigend gestartet. Es bietet Benutzern eine praktische Plattform, die es ihnen ermöglicht, ungenutzte Artikel einfach zu veröffentlichen und zu handeln. Im Miniprogramm können Sie über private Nachrichten mit Käufern oder Verkäufern kommunizieren, persönliche Informationen und Bestellungen einsehen und nach den gewünschten Artikeln suchen. Wie genau heißt Xianyu im WeChat-Miniprogramm? Dieses Tutorial stellt es Ihnen im Detail vor. Benutzer, die es wissen möchten, folgen bitte diesem Artikel und lesen Sie weiter! Wie heißt das Xianyu WeChat-Applet? Antwort: Xianyu, Leerlauftransaktionen, Gebrauchtverkäufe, Bewertungen und Recycling. 1. Im Miniprogramm können Sie inaktive Nachrichten posten, mit Käufern/Verkäufern über private Nachrichten kommunizieren, persönliche Informationen und Bestellungen einsehen, nach bestimmten Artikeln suchen usw. 2. Auf der Seite des Miniprogramms gibt es eine Homepage, in der Nähe, Post-Leerlauf, Nachrichten und meine 5 Funktionen;

See all articles