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

CSS imitiert den sanften Umschalttasteneffekt von Apple

Inhaltsverzeichnis 1. Code-Analyse 2. Quellcode Q...

jQuery implementiert eine einfache Änderung der Schaltflächenfarbe

Wir möchten in HTML und CSS die Farbe eines Butto...

Zusammenfassung der allgemeinen Docker-Befehle und Tipps

Installationsskript Ubuntu / CentOS Es scheint ei...

Tutorial zur Konfiguration der kostenlosen MySQL-Installationsversion

In diesem Artikel wird das kostenlose MySQL-Insta...

Verwenden Sie momentJs, um eine Countdown-Komponente zu erstellen (Beispielcode)

Heute möchte ich einen Countdown von Vue und Mome...

Eine Zusammenfassung der Gründe, warum MySQL keinen Datumsfeldindex verwendet

Inhaltsverzeichnis Hintergrund erkunden Zusammenf...

CSS horizontale Zentrierung und Begrenzung der maximalen Breite

Eine CSS-Layout- und Stilfrage: Wie kann man die ...

Informationen zur Nginx-GZIP-Konfiguration

Das Prinzip von nginx zur Erzielung einer Ressour...