Details zum Schreiben von React in einem Vue-Projekt

Details zum Schreiben von React in einem Vue-Projekt

Wir können jsx/tsx-Dateien direkt erstellen

Die Projektstruktur sieht diesmal wie folgt aus:

Verwenden Sie es so in der Vue-Datei

// index.vue
<Vorlage>
  <div Klasse="Wrapper">
    <Allgemein :opt="Liste" />
  </div>
</Vorlage>
 
<script lang="ts">
importiere { Komponente, Vue } von „vue-property-decorator“;
importiere Common aus "./components/Common";

@Komponente({
  Name: "App",
  Komponenten:
    Gemeinsam,
  },
})
exportiere Standardklasse App erweitert Vue {
  private Liste = ["Ich möchte zu Taobao", "Ich möchte zu Baidu", "Ich möchte zu JD"];
}
</Skript>

tsx schreibt so

importiere { CreateElement } von „vue“;
importiere { Komponente, Vue, Prop } von „vue-property-decorator“;

@Komponente({
    Name: „Allgemein“
})
exportiere Standardklasse Common erweitert Vue {
    @Prop(Objekt) opt!: beliebig[]

    render(h: ErstelleElement) {
        Rückkehr <span>
            {
                dies.opt.map((it) => {
                    geben Sie <span style="marginRight:10px">{es} zurück</span>
                })
            }
        </span>
    }
}

Schauen Sie sich die Seite an

Jemand hat vielleicht bemerkt, dass ich auch auf CreateElement verwiesen habe. Wofür ist das? Dieses Ding wird Renderfunktion genannt. Brüder, die nicht so ein langes Dokument über Vue lesen möchten, können es hier lesen. Einfache Erklärung: Dieses Ding kann einen vnode -Knoten rendern. Es ist näher am Compiler als Vorlagen. Was bedeutet das? Dies bedeutet, dass die Vorlagensyntax auch in eine Rendering-Funktion kompiliert wird. Wenn wir also die Rendering-Funktion direkt verwenden, entspricht dies dem Speichern des Prozesses von der Vorlagensyntax zur Rendering-Funktion. Die Leistung des Rundungsprojekts ist eine weitere große Verbesserung!

Eine kurze Einführung in die Parameterübergabe:

Erster Parameter: { String | Object | Function } Ein HTML-Tag-Name, ein Komponentenoptionsobjekt oder eine asynchrone Funktion, die zu einem der oben genannten Werte resolve . Pflichtfeld.

Der zweite Parameter: Object ist ein Datenobjekt, das attribute in der Vorlage entspricht.

Der dritte Parameter: { String | Array } Textknoten oder untergeordnete virtuelle Knoten ( VNodes ).

Die Rendering-Funktion bringt viel Flexibilität in Vue. Wenn Sie früher das Einfügen von etwas in eine untergeordnete Komponente anpassen wollten, mussten Sie viele <slot> schreiben. Mit der Rendering-Funktion können wir so spielen.

// Transformiere die Daten von index.vue oben

  private Liste = [
    { render: () => ["a", { style: { color: "red" } }, "Ich möchte zu Taobao"] },
    { render: () => ["a", { style: { color: "green" } }, "Ich möchte zum JD."] },
    { render: () => ["a", { style: { color: "pink" } }, "Ich möchte zu Baidu"] },
  ];

Dies ist in tsx geschrieben:

  {
                dies.opt.map((it) => {
                    return h(...it.render())
                })
            }


Sie können eine schicke Seite rendern.

Wir können auch so spielen:

// TSX-Transformation <span>
            {
                dies.opt.map((it) => {
                    gib es zurück.render(h)
                })
            }
</span>


Wir können dies auf der Seite index.vue tun:
// index.vue
private Liste = [
    {
      rendern: (h: ErstelleElement) =>
        h("a", { style: { color: "red", marginRight: "5px" } }, "Ich möchte zu Taobao"),
    },
    {
      rendern: (h: ErstelleElement) =>
        h("a", { style: { color: "green", marginRight: "5px" } }, "Ich möchte zum JD"),
    },
    {
      rendern: (h: ErstelleElement) =>
        h("a", { style: { color: "pink", marginRight: "5px" } }, "Ich möchte zu Baidu"),
    },
  ];

Das Ergebnis ist das gleiche Phantasie

Wir können auch unsinnige Etiketten rendern!

// index.vue-Transformation {
      rendern: (h: ErstelleElement) =>
        H(
          "h1",
          {
            Stil: { Farbe: "grün", rechter Rand: "5px" },
          },
          „Ich gehe zum JD.“
        ),
    },


Wir können Ereignisse in der Rendering-Funktion beliebig definieren:

// index.vue
private Liste = [
   {
      rendern: (h: ErstelleElement) =>
        H(
          "A",
          {
            Stil: { Farbe: "rot", rechter Rand: "5px" },
            An: {
              klick: () => this.iWillGoWhere("TB"),
            },
          },
          „Ich möchte zu Taobao“
        ),
   }]
   
 iWillGoWhere(Typ: Zeichenfolge) {
    const goWhere: beliebig = {
      TB: () => {
        alert("Ich gehe zu Taobao!");
      },
      JD: () => {
        alert("Ich gehe zum JD!");
      },
      BD: () => {
        alert("Ich möchte zu Baidu!");
      },
    };
    geheWohin[Typ]();
  }


Das ist es!

Dies ist das Ende dieses Artikels zum Schreiben von React in einem Vue-Projekt. Weitere Informationen zum Schreiben von React in einem Vue-Projekt 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:
  • Einführung in die reaktive Funktion toRef-Funktion ref-Funktion in Vue3
  • Erfahren Sie, wie Sie Vue3 Reactivity implementieren
  • Detaillierte Analyse des Unterschieds zwischen Ref und Reactive in Vue3.0
  • Detaillierte Erklärung und Erweiterung von ref und reactive in Vue3
  • Detaillierte Erklärung der Verwendung von SetUp- und Reactive-Funktionen in Vue3
  • Die vollständige Verwendung von Setup, Ref und Reactive in der Vue3-Kombinations-API
  • Detaillierte Erklärung der drei wichtigsten Frontend-Technologien React, Angular und Vue
  • Unterschiede und Vorteile von Vue und React
  • Was sind die Unterschiede zwischen Vue und React?
  • Vue und React im Detail

<<:  Detaillierte Analyse der MySQL-Optimierung von like und = Leistung

>>:  So setzen Sie das Root-Passwort in Linux mysql-5.6 zurück

Artikel empfehlen

So verbinden Sie Navicat mit der Docker-Datenbank auf dem Server

Starten Sie den MySQL-Container in Docekr Verwend...

GZIP-Komprimierung Tomcat und Prozessdiagramm zur Verbesserung der Web-Leistung

1. Einleitung Ich habe vor Kurzem an einem Projek...

Lösung für den Überlauf der HTML-Tabelle

Wenn die Tabelle breit ist, kann es zu einem Über...

Vue implementiert einen einfachen Bildwechseleffekt

In diesem Artikelbeispiel wird der spezifische Co...

So fügen Sie Docker dynamisch Ports hinzu, ohne das Image neu zu erstellen

Manchmal müssen Sie während des Betriebs freigege...

So legen Sie den Standardwert eines MySQL-Felds fest

Inhaltsverzeichnis Vorwort: 1. Standardwertbezoge...

So leeren Sie den Cache nach der Verwendung von Keep-Alive in Vue

Was ist Keepalive? Bei der normalen Entwicklung m...

So erstellen Sie schnell zig Millionen Testdaten in MySQL

Bemerkung: Die Datenmenge in diesem Artikel beträ...

Konfigurationsmethode für das Nginx-Anforderungslimit

Nginx ist ein leistungsstarker, leistungsstarker ...

MySQL-Beispielcode für die Addition und Subtraktion von Datum und Uhrzeit

Inhaltsverzeichnis 1.MySQL addiert oder subtrahie...

Detaillierte Einführung in Protokolle im Linux-System

Inhaltsverzeichnis 1. Logbezogene Dienste 2. Geme...