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

Beispielcode zur Implementierung von Dreiecken und Pfeilen durch CSS-Rahmen

1. CSS-Boxmodell Die Box beinhaltet: Rand, Rahmen...

Der Prozess der Bereitstellung eines Projekts auf einem anderen Host mit Jenkins

Umfeld Hostname IP-Adresse Aufschlag Jenkins 192....

Was ist COLLATE in MYSQL?

Vorwort Führen Sie den Befehl show create table &...

Nginx-Zugriffssteuerungs- und Parameteroptimierungsmethoden

Globale Nginx-Variablen Es gibt viele globale Var...

MySQL 5.7-Clusterkonfigurationsschritte

Inhaltsverzeichnis 1. Ändern Sie die Datei my.cnf...

Verwendung von VNode in Vue.js

Was ist VNode In vue.js gibt es eine VNode-Klasse...

Der vollständige Prozess der Docker-Image-Erstellung

Inhaltsverzeichnis Vorwort Erstellungsschritte Er...

Einführung in das Batch-Cache-Löschskript von nginx proxy_cache

Vorwort: Ich habe zuvor den offiziellen Proxy-Cac...

Installations-Tutorial für mysql8.0rpm auf centos7

Laden Sie zunächst das Diagramm herunter 1. Deins...