Grundlegende Kenntnisse zur Verwendung von Miniprogrammen (sehr umfangreich, empfehlenswert!)

Grundlegende Kenntnisse zur Verwendung von Miniprogrammen (sehr umfangreich, empfehlenswert!)

Was ist bei der Registrierung einer App zu beachten?

  1. Bestimmen Sie das Einstiegsszenario des Miniprogramms
  2. Überwachen Sie Lebenszyklusfunktionen und führen Sie im Lebenszyklus die entsprechende Geschäftslogik aus, z. B. das Abrufen von WeChat-Benutzerinformationen in einer Lebenszyklusfunktion.
  3. Da die App()-Instanz global gemeinsam genutzt wird (ein Singleton-Objekt), können wir hier einige gemeinsam genutzte Daten ablegen.

Was ist grundsätzlich bei der Anmeldung einer Seite zu beachten?

  1. Senden Sie während des Lebenszyklus Netzwerkanforderungen, um Daten vom Server abzurufen.
  2. Initialisieren Sie einige Daten, um die Referenz und Anzeige durch wxml zu erleichtern
  3. Hören Sie sich einige Ereignisse in wxml an und binden Sie entsprechende Ereignisfunktionen
  4. Einige andere Überwachungen (wie etwa das Scrollen der Seite, nach oben ziehen zum Aktualisieren, nach unten ziehen, um mehr zu laden usw.)

Informationen zu WXML-Vorlagen und Include

In wxml können Sie in Seite/Komponente definierte Funktionen nicht direkt aufrufen

Definieren Sie das Vorlagentag in der WXML-Datei. Das Vorlagentag wird nicht gerendert, wenn es nicht aufgerufen wird.

Das Attribut name entspricht dem Attribut is; Sie können die Syntax {{}} verwenden.

<Vorlagenname="Komponente">
<Ansicht>Hahaha</Ansicht>
  <text>Hey, hey, hey</text>
  <text>{{name}}</text>
  <text>{{Alter}}</text>
</Vorlage>
<template ist="Komponente"/>
<template ist="Komponente"/>
<template ist="Komponente"/>
<template ist="Komponente" data="{{name: '小屏', age:'123'}}" />

Es gibt zwei Möglichkeiten, WXML zu importieren:

Import

1: Hauptsächlich Vorlage importieren

2: Die Besonderheit ist, dass kein rekursiver Import möglich ist

Einleitung einschließen:

1: Gemeinsame Komponenten in eine Datei extrahieren

Funktionen: Vorlage/WXS kann nicht importiert werden/rekursiver Import möglich

WXS-Modul

Das wxs-Modul ist eine Skriptsprache für kleine Programme, die mit wxml kombiniert werden können und die Struktur der Seite aufbauen können

wxs und JavaScript sind unterschiedliche Sprachen mit eigener Syntax, die nicht mit JavaScript übereinstimmt. (Aber im Grunde das Gleiche)

In wxml können Sie in Seite/Komponente definierte Funktionen nicht direkt aufrufen

In einigen Fällen möchten wir jedoch Funktionen zum Verarbeiten der Daten in wxml verwenden (ähnlich dem Filter in Vue), sodass derzeit wxs verwendet wird.

Einschränkungen und Funktionen der WXL-Verwendung:

Die WXS-Laufzeitumgebung ist von anderen JavaScript-Codes isoliert. WXS kann weder in anderen JavaScript-Dateien definierte Funktionen noch APIs in Applets aufrufen.

wxs kann nicht als Funktionsrückruf eines Arrays verwendet werden.

Aufgrund der Unterschiede in der Betriebsumgebung ist wxs in Applets auf iOS-Geräten zwei- bis zwanzigmal schneller als JavaScript, während auf Android-Geräten zwischen beiden kein Unterschied in der Betriebseffizienz besteht.

Miniprogramm-Komponentenbildung

Die Miniprogrammkomponente und der Seitenstil, der die Komponente aufruft, beeinflussen sich nicht gegenseitig.

Um eine Komponente aufzurufen, müssen Sie den Komponentennamen und den Pfad zur JSON-Datei auf der Seite hinzufügen.

{
  "Komponenten verwenden": {
    "mein-Schnitt":"/Seiten/compent/mein-Schnitt" }
}

Wenn die Stile von Seiten und Komponenten sich gegenseitig beeinflussen sollen, können Sie die styleIsolation-Eigenschaft von options verwenden.

In der JS-Datei der Komponente Component({})

  // Durch Festlegen von styleIsolation von Optionen in der Komponente: „apply-shared“ wirken sich die Stilattribute der Seiteneinstellungen auf den Stil der Komponente aus. // Durch Festlegen von styleIsolation von Optionen in der Komponente: „shared“ wirken sich die Stilattribute der Seiteneinstellungen auf den Stil der Komponente aus. Komponente ({
	Optionen: {
    styleIsolation: "shared anwenden"
  },
})

Die dynamische Konvertierung zwischen Komponenten verwendet Eigenschaften

In der Komponente können Sie die Eigenschaft externalClasses verwenden, um den CSS-Stil dynamisch festzulegen

Komponente({
Eigenschaften:
    // Titel: Zeichenfolge
    Titel:{
      Typ: Zeichenfolge,
      Wert: „Ich bin der Standardwert“,
      //Neue und alte Werte überwachen observer: function(newVal,oldVal){
        console.log(neuerWert,alterWert)
      }
    },
    
  },
    // In der Komponente können Sie mit dieser Eigenschaft den CSS-Stil externalClasses dynamisch festlegen: ["tltleclass"]

})

Aufrufen von Eigenschaften in der Seite

<mein-Schnitt Titel="Haha" tltleclass="red"></mein-Schnitt>
<my-cut Titel="Hey Hey" tltleclass="grün" />
<mein-Schnitt/>

CSS-Datei der Seite

.Rot{
  Farbe: rot;
}
.Grün{
  Farbe: grün;
}

Funktionsaufrufe zwischen Komponenten und Seiten

Wenn wir Komponenten auf einer Seite verwenden, müssen wir manchmal die Komponentendaten ändern, wozu wir die Komponentendaten in der JS-Datei der Seite aufrufen müssen.

Im Applet gibt es eine selectComponent('.class/#xxx'), die das Komponentenobjekt abrufen kann.

Komponente wxml

<Klasse anzeigen="contention">
  <block wx:for="{{titled}}" wx:key="index">
    <view class="tit"> <text class="intext {{index == increat? 'active' : ''}}" data-count="{{index}}" bindtap="targetTap">{{item}}</text> </view>
  </block>
</Ansicht>

Komponente js

Methoden: {
    ZielTap(e){
      const index = e.currentTarget.dataset.count
      dies.setData({
        increat:index
      })
        this.triggerEvent("Zielanzahl" , {})
    },
    ändern(){
      dies.setData({
        Titel: ["Politik", "Mathematik", "Englisch"]
      })
    }

  }

Seite wxml

<switch mit dem Titel="{{list}}" bind:targetCount="targetCount" class="sw-class"></switch>

Seite js

  ZielAnzahl(){
  //Komponentenobjekt abrufen const content = this.selectComponent('.sw-class') 
    console.log(Inhalt)
    // Inhalt.setData({
    // mit dem Titel: ["Politik", "Mathematik", "Englisch"]
    // })
    // Offene Spezifikationen empfehlen diese Methode zum direkten Ändern von Funktionen im Allgemeinen nicht. Es wird empfohlen, Methoden innerhalb der Komponente zu verwenden, um die Methode zu ändern und content.amend () auf der Seite aufzurufen.
  },

Verwendung von Mini-Programmkomponenten-Slots

Einzelsteckplatz

Komponente wxml

<Ansicht>
  Ich bin ein Titel</view>
<Steckplatz></Steckplatz>
<Ansicht>
  Ich bin ein Inhalt</view>

WXML-Verwendung der Seite

<mein-Slot>
<button size="mini">Schaltfläche</button>
</mein-slot>
<mein-Slot>
 <Bildquelle="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg2.woyaogexing.com%2F2021%2F04%2F26%2F1b402c98095d452486508b8250b21f3f%21360x640.jpeg&refer=http%3A%2F%2Fimg2.woyaogexing.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1625711145&t=d9d310d5e9c878a9d4b7bc7057f2b754"/>
</mein-slot>
<mein-Slot>
  <Schiebereglerwert="20"></Schieberegler>
</mein-slot>

Verwenden mehrerer Slots

Sie müssen jedem Slot einen Namen geben, indem Sie das Attribut name verwenden

Die Eigenschaft multipleSolts unter dem Optionsobjekt unter dem Komponentenobjekt muss auf true gesetzt werden.

Komponente wxml

<view>Ich bin der Titel des Multi-Slots</view>
<Ansicht> <Slotname="Slot1" ></Slot> </Ansicht>
<Ansicht> <Slotname="Slot2" ></Slot> </Ansicht>
<Ansicht> <Slotname="Slot3" ></Slot> </Ansicht>
<view>Ich bin das Ende des Multi-Slots</view>

Komponenten-JS-Datei

Komponente({
  /**
   * Liste der Komponenteneigenschaften */
  Optionen: {
    mehrereSlots:true
  }
  )}

Nutzung dieser Seite

<!-- Verwendung mehrerer Slots -->
<!-- Hinweise:
Sie müssen jedem Slot einen Namen geben. Sie müssen die Eigenschaft multipleSolts unter dem Optionsobjekt unter dem Komponentenobjekt auf true setzen -->
<mein-mslot>
<button slot="slot3">415461</button>
<slider slot="slot1" value="20"></slider>
<text slot="slot2">Hehehe</text>
</mein-mslot>

Welche Funktionen hat der Komponentenkonstruktor der Miniprogrammkomponente?

1 Eigenschaften ermöglichen Benutzern die Weitergabe von Daten an Komponenten

Eigenschaften: 
	Titel: Zeichenfolge,
	Inhalt:{
	Typ: Array,
	Wert: [1,2.3],
	Beobachter:Funktion(neuerWert,alterWert){
        console.log(neuerWert,alterWert)
      }
	}
}

2.data definiert die Initialisierungsdaten einiger Komponenten

Daten:{
	Zähler: 0
}	

3 Methoden werden verwendet, um Funktionen innerhalb von Komponenten zu definieren

Methoden:{
foo(){
	
}
}

4 Optionen definiert die Konfigurationsmöglichkeiten der Komponente

Optionen: {
//Auf „true“ setzen, wenn Sie mehrere Slots verwenden müssen
	mehrereSlots:true,
	//Setze den Isolationsmodus des Stils styleIsolation: "apply-shared", //Die auf der Seite festgelegten Stilattribute wirken sich auf den Stil der Komponente aus //styleIsolation: "shared" Die auf der Seite festgelegten Stilattribute wirken sich auf den Stil der Komponente aus}

5 externalClasses definiert zusätzliche Stile, die von außen übergeben werden

externeKlassen:["on","tre"]

6 Beobachter können Änderungen an Eigenschaften/Daten überwachen

Beobachter:{
	Zähler: Funktion(neuerWert){
		console.log(neuerWert)
	}
}

7 Überwachen Sie den Lebenszyklus der Seite

In der Komponenten-JS-Datei

  Seitenlebensdauer: {
    zeigen(){
      console.log("Die Seite, auf der sich die Überwachungskomponente befindet")
    },
    verstecken(){
      console.log("Wenn die Seite, auf der sich die Überwachungskomponente befindet, ausgeblendet ist")
    },
    Größe ändern(){
      console.log("Seitengrößenänderungen überwachen")
    }
  }

Überwachen des Komponentenlebenszyklus

Lebensdauern:
    erstellt(){
      console.log("Komponente erstellt")
    },
    beigefügt(){
      console.log("Die Komponente wird der Seite hinzugefügt")
    },
    bereit(){
      console.log("Die Komponente wird gerendert")
    },
    verschoben(){
      console.log("Die Komponente wird an eine andere Stelle im Knotenbaum verschoben.")
    },
    losgelöst(){
      console.log("Komponente")
    }
  }

Mini-Programm Netzwerkanfrage

onReady: Funktion () {
    wx.Anfrage({
      URL: „http://httpbin.org/post“,
      Methode: 'post',
      Daten:{
        Name: „wangshuai“,
        Alter:19
      },
      Erfolg:Funktion(res){
          Konsole.log(res)
      }
    })
  },

Mehrere Schlüsselattribute

  1. url: muss übermittelt werden
  2. Daten: Anforderungsparameter
  3. Methode: Anforderungsmethode
  4. Erfolg: Rückruf bei Erfolg
  5. Fehler: Rückruf, wenn ein Fehler auftritt

Um die Kopplung zwischen Netzwerkanforderungen und wx.request zu reduzieren, verwenden wir im Allgemeinen die Promise-Methode, um das Rückrufergebnis zu erhalten.

Verwenden von Promise-Wrappern

Export-Standardfunktionsanforderung (Option) {
    returniere neues Promise( (lösen, ablehnen) => {
      wx.Anfrage({
        URL: Option.URL,
        Methode: Option.Methode || 'get',
        Daten: option.data || {},
        Erfolg: Funktion (res) {
            Entschlossenheit (res)
        },
        Fehler: Funktion (Res) {
          ablehnen(res)
        }
      })
    })
}

Pageaufruf

 onReady: Funktion () {
    //Miniprogramm für native Netzwerkanforderung// wx.request({
    // URL: „http://httpbin.org/post“,
    // Methode: 'post',
    // Daten:{
    // Name: „wangshuai“,
    //Alter:19
    // },
    // Erfolg:Funktion(res){
    // konsole.log(res)
    // }
    // })
    Anfrage({url: 'http://httpbin.org/post',Methode:"post"}).dann(res=>{
      Konsole.log(res)
    }).catch(err =>{
      console.log(fehler)
    })
  },

Popup-Fensteranzeige im Miniprogramm

Seite wxml

<button size="mini" bindtap="showToast">Toast anzeigen</button>
<button size="mini" bindtap="showModal">Modal anzeigen</button>
<button size="mini" bindtap="showLoading">AnzeigenWird geladen</button>
<button size="mini" bindtap="showAction">Aktion anzeigen</button>
<button size="mini" open-type="share">Teilen</button>

Seite js Datei

Seite({
	Toast anzeigen(){
    wx.showToast({
      Titel: 'Ich bin showToast',
    })
  },
  zeigeModal(){
    wx.showModal({
      Titel: 'Löschen',
      Farbe abbrechen: 'Farbe abbrechen',
      Erfolg:Funktion (Parameter) {
          console.log(Parameter)
          wenn (params.abbrechen) {
              console.log("Auf Löschen abbrechen geklickt")
          } 
      } 
    })
  },
  zeigeLaden(){
    wx.showLoading({
      Titel: 'Warten',
      mask: true //Geben Sie eine Maske an, um andere Vorgänge zu verhindern})
    setzeTimeout(()=>{
      wx.hideLoading({
        Erfolg: (res) => {},
      })
    },1500)
  },
  Aktion anzeigen(){
    wx.showActionSheet({
      itemList: ['Foto', 'Datei'],
    })
  }
})

Teilen der Miniprogrammseite

Es gibt zwei Möglichkeiten, ein Miniprogramm freizugeben. Eine besteht darin, auf die Schaltfläche zum Freigeben zu klicken, oder die andere darin, auf die Menüoption in der oberen rechten Ecke zu klicken und „Freigeben“ auszuwählen.

Wenn wir ein Miniprogramm teilen, müssen wir die Freigabeinformationen über onShareAppMessage anzeigen

Überwachen Sie das Verhalten des Benutzers beim Klicken auf die Schaltfläche „Weiter“ (Schaltflächenkomponente „open-type=„share“) auf der Seite oder auf die Schaltfläche „Weiter“ im Menü oben rechts und passen Sie den weitergeleiteten Inhalt an.

Hinweis: Nur wenn dieser Eventhandler definiert ist, wird die Schaltfläche „Weiterleiten“ im Menü oben rechts angezeigt. Dieser Eventhandler muss ein Objekt für benutzerdefinierte Weiterleitungsinhalte zurückgeben. Der zurückgegebene Inhalt ist wie folgt:

Über das Miniprogramm jump

Navigator-Tag

Über den Navigator springen Sie per URL.

<navigator url="/pages/home/home">Zur Startseite springen</navigator>

Das Sprungattribut open-type hat folgende Werte

Weiterleitung: Schließt die aktuelle Seite und springt zu einer Seite innerhalb der Anwendung. Es ist jedoch nicht erlaubt, zur TabBer-Seite zu springen, und es ist nicht möglich, zurückzukehren

switchTab: Zur TabBer-Seite springen und andere Nicht-Tabber-Seiten schließen (muss in TabBer definiert werden)

reLaunch: Alle Seiten schließen und eine bestimmte Seite öffnen (eine bestimmte Seite direkt anzeigen und zur TabBer-Seite springen)

<navigator url="/pages/home/home">Zur Startseite springen</navigator>
<navigator url="/pages/home/home" open-type="redirect">Zur Startseite springen (Umleitung)</navigator>
<navigator url="/pages/home/home" open-type="reLaunch">Zur Startseite springen (reLaunch)</navigator>
<navigator url="/pages/home/home" open-type="switchTab">Zur Startseite springen (switchTab)</navigator>

Zusammenfassen

Dies ist das Ende dieses Artikels über die grundlegende Verwendung von Miniprogrammen. Weitere Informationen zur grundlegenden Verwendung von Miniprogrammen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Eine kurze Diskussion über die Grundlagen des WeChat-Applet-Flex-Layouts
  • Grundlegendes Tutorial zur Entwicklung von WeChat Mini-Programmen
  • Detaillierte Erläuterung der WeChat-Applet-Entwicklung (Projekt von Grund auf)
  • WeChat-Applet-Cloud-Entwicklungsdatenbankbetrieb
  • WeChat-Applet WeChat-Zahlungszugang – Entwicklungsbeispiel – detaillierte Erläuterung
  • Eine kurze Diskussion über die Wissenspunkte, die bei der Entwicklung kleiner Programme mit mpvue beachtet und verstanden werden müssen
  • Zusammenfassung von 40 technischen Tipps zur WeChat-Applet-Entwicklung (empfohlen)
  • Entwicklung eines WeChat-Miniprogramms - Tutorial für die ersten Schritte

<<:  Nginx-Konfiguration basierend auf mehreren Domänennamen, Ports und virtuellen IP-Hosts

>>:  Tutorial zur Installation und Konfiguration von MySQL 8.0.12 unter Win10

Artikel empfehlen

Analyse mehrerer Situationen, in denen der MySQL-Index fehlschlägt

1. Prinzip des besten linken Präfixes – Wenn mehr...

Teilen Sie JS vier lustige Hacker-Hintergrundeffektcodes

Inhaltsverzeichnis Beispiel 1 Beispiel 2 Beispiel...

So verwenden Sie Umgebungsvariablen in der Nginx-Konfigurationsdatei

Vorwort Nginx ist ein auf Leistung ausgelegter HT...

Vue realisiert einfachen Effekt des Lauflichts

In diesem Artikel wird der spezifische Code von V...

Erläuterung des React+TypeScript-Projektaufbaufalls

Das Erstellen eines React-Projekts kann sehr einf...

Detaillierte Erklärung der MySQL-Datenbank-Trigger

Inhaltsverzeichnis 1 Einleitung 2 Trigger-Einführ...

js zur Realisierung des Mausverfolgungsspiels

In diesem Artikel wird der spezifische Code von j...

Zusammenfassung der Probleme mit der Mysql-connector-java-Treiberversion

Problem mit der Mysql-Connector-Java-Treiberversi...

Javascript implementiert einfache Navigationsleiste

In diesem Artikel wird der spezifische Code von J...

Verwendung der VUE-Renderfunktion und ausführliche Erklärung

Inhaltsverzeichnis Vorwort Die Rolle des Renders ...

3 Codes zur automatischen Aktualisierung von Webseiten

Tatsächlich ist es sehr einfach, diesen Effekt zu ...

Detaillierte Erklärung des Unterschieds zwischen Tags und Elementen in HTML

Ich glaube, dass es vielen Freunden, die sich mit ...