Zusammenfassung von 4 Lösungen zum Zurückgeben von Werten auf WeChat Mini-Programmseiten

Zusammenfassung von 4 Lösungen zum Zurückgeben von Werten auf WeChat Mini-Programmseiten

Anwendungsszenarien

Das Applet springt von Seite A zu Seite B, wählt auf Seite B einen Wert aus und kehrt dann zu Seite A zurück, wobei es den auf Seite B ausgewählten Wert auf Seite A verwendet. Beispiel: Auf der Bestellseite zur Adressliste springen und nach Auswahl der Adresse wieder zur Bestellseite zurückkehren. Die Lieferadresse auf der Bestellseite muss synchron aktualisiert werden.

Lösung

Die übliche und einfachere Lösung besteht darin, den globalen Speicher globalData des Applets und den lokalen Cache-Speicher zu verwenden, den Seitenstapel des Applets abzurufen, die Methode setData der vorherigen Seite aufzurufen und die Eigenschaft events von wx.navigateTo zu verwenden, um die von der geöffneten Seite an die aktuelle Seite gesendeten Daten abzuhören. Hier ein kurzer Vergleich der Vor- und Nachteile der vier Methoden:

1. Verwenden Sie globalData zur Implementierung

//Seite A
const app = getApp() //Holen Sie sich die App.js-Instanz onShow() { //Lebenszyklusfunktion -- Achten Sie auf die Seitenanzeige if (app.globalData.backData) {
    this.setData({ //Rendere den aktualisierten Wert von Seite B auf der Seite backData: app.globalData.backData
    },()=>{
     	delete app.globalData.backData //Daten löschen um wiederholtes Rendern von onShow zu vermeiden})
  }
}
//Seite B
const app = getApp() //App.js-Instanz abrufen changeBackData(){
   app.globalData.backData = 'Ich wurde geändert'
   wx.navigateBack()
}

2. Verwenden Sie den lokalen Cache-Speicher zur Implementierung

//Seite A
  onShow: Funktion () {
    let backData = wx.getStorageSync('backData')
    wenn(zurückDaten){
       dies.setData({
     		 zurückDaten
    	},()=>{
     		 wx.removeStorageSync('backData')
    	})
    }
  },
 //Seite B
 changeBackData(){
    wx.setStorageSync('backData', 'Ich wurde geändert')
    wx.navigateBack()
 },

3. Verwenden Sie den Seitenstapel des Applets zur Implementierung

Der Seitenstapel des Miniprogramms ist praktischer als die beiden anderen Methoden und rendert schneller. Sie müssen nicht warten, bis Sie zu Seite A zurückkehren, um die Daten zu rendern. Der Wert auf Seite A wird direkt auf Seite B aktualisiert. Wenn Sie zu Seite A zurückkehren, wurde der Wert aktualisiert. Das Prinzip von globalData und Storage besteht darin, den Wert auf Seite B zu ändern, dann zu Seite A zurückzukehren, die Lebenszyklusfunktion onShow auszulösen und die Seitendarstellung zu aktualisieren.

//Seite B
changeBackData(){
    const Seiten = getCurrentPages();
    const beforePage = Seiten[Seitenlänge - 2]
    beforePage.setData({ // Aktualisiert die Daten von Seite A direkt, Seite A benötigt keine weiteren Vorgänge. backData: „Ich wurde geändert.“
    })
}

4. Implementierung von Ereignissen mithilfe der wx.navigateTo-API

Das Implementierungsprinzip von wx.navigateTo-Ereignissen wird mithilfe des Publish-Subscribe-Modells des Entwurfsmusters implementiert. Interessierte Studenten können selbst ein einfaches Modell implementieren, um denselben Effekt zu erzielen.

//Seite A
 geheSeiteB() {
    wx.navigateTo({
      URL: 'B',
      Ereignisse: {
        getBackData: res => { //Listener-Ereignis in Ereignissen hinzufügen this.setData({
            zurückDaten: res.zurückDaten
          })
        },
      },
    })
  },
//Seite B	
changeBackData(){
    const eventChannel = this.getOpenerEventChannel()
       eventChannel.emit('getBackData', {  
     	 backData: 'Ich wurde geändert'
    });
     wx.navigateBack()
 }

Zusammenfassen

Die Methoden 1 und 2 sind in Bezug auf den Seiten-Rendering-Effekt etwas langsamer als die beiden letzteren. Die Methoden 3 und 4 haben das Update ausgelöst, bevor Seite B auf Seite A zurückfällt, während die Methoden 1 und 2 das Update auf Seite A auslösen, nachdem sie auf Seite A zurückgekehrt sind. Und bei den Methoden 1 und 2 müssen Sie berücksichtigen, dass nach der Aktualisierung von Seite A die Daten in globalData und Storage gelöscht werden müssen, um ein wiederholtes Auslösen von setData in der onShow-Methode zum Aktualisieren der Seite zu vermeiden. Daher empfehle ich persönlich, die folgenden Methoden 3 und 4 zu verwenden.

Damit ist dieser Artikel über 4 Lösungen zum Zurückgeben und Übergeben von Werten auf WeChat Mini-Programmseiten abgeschlossen. Weitere relevante Inhalte zum Zurückgeben und Übergeben von Werten auf WeChat Mini-Programmseiten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Zusammenfassung mehrerer Methoden zum Übergeben und Abrufen von Werten im WeChat-Applet
  • Detaillierte Erläuterung zur Übertragung des WeChat-Applet-Seitenwerts
  • Benutzerdefinierte Komponentenkapselung für WeChat-Applets und Wertübertragungsmethode für übergeordnete und untergeordnete Komponenten
  • WeChat-Applet-Datenverpackung, Parameterwertübertragung und anderer Erfahrungsaustausch
  • Analyse der Methode zur Implementierung der Seitensprungwertübertragung und Werterfassung im WeChat-Applet
  • Beispiel für eine benutzerdefinierte Komponentenwertübertragungsseite und einen Komponentendatenübertragungsvorgang für das WeChat-Applet
  • Detaillierte Erläuterung zum Übergeben und Abrufen von Werten im WeChat-Applet
  • Detaillierte Erläuterung des Beispiels zum Übergeben von Werten von der untergeordneten Seite zur übergeordneten Seite im WeChat-Applet
  • So übertragen Sie Werte bei der Weiterleitung zur WeChat Mini-Programmseite
  • WeChat-Miniprogramm: Detaillierte Erläuterung der Datenspeicherung, Wertübertragung und des Wertabrufs

<<:  So verwenden Sie Docker buildx, um plattformübergreifende Images zu erstellen und sie in private Repositories zu übertragen

>>:  Methode zur Implementierung von Leistungstests der MySQL-Datenbank durch das Sysbench-Tool

Artikel empfehlen

18 Sets exquisiter kostenloser Symbolmaterialien im Apple-Stil zum Teilen

Apple-Becher-Symbole und Extras HD StorageBox – Z...

Methode der Toolbibliothek zur Generierung von Vue-Komponentendokumenten

Inhaltsverzeichnis Analysieren von VUE-Dateien Do...

So verwenden Sie Lottie-Animationen in React Native-Projekten

Lottie ist eine von Airbnb entwickelte Open-Sourc...

30 Tipps zum Schreiben von HTML-Code

1. HTML-Tags immer schließen Im Quellcode der vor...

MySql 8.0.11-Winxp64 (kostenlose Installationsversion) Konfigurations-Tutorial

1. Entpacken Sie das Zip-Paket in das Installatio...

Zusammenfassung der Wissenspunkte zum MySQL ALTER-Befehl

Wenn wir den Tabellennamen ändern oder die Tabell...

So verwenden Sie localStorage in JavaScript

Wenn Sie Entwickler sind und in die Welt von .NET...

So erstellen Sie mit Docker von Grund auf ein persönliches SOLO-Blog

Inhaltsverzeichnis 1. Umweltvorbereitung 2. Docke...

Verwendung des Linux-Befehls gzip

1. Befehlseinführung Der Befehl gzip (GNU zip) wi...

Analysieren Sie, wie Uniapp den Schnittstellendomänennamen dynamisch erhält

Hintergrund Der Domänenname der Schnittstelle ist...

MySQL effiziente Abfrage Left Join und Gruppieren nach (plus Index)

MySQL effiziente Abfrage MySQL verzichtet auf „Gr...

Detailliertes Tutorial zum Herunterladen und Installieren von mysql8.0.21

Offizielle Website-Adresse: https://www.mysql.com...