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 Eine kurze Einführung in die Parameterübergabe: Erster Parameter: { Der zweite Parameter: Der dritte Parameter: { 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 // 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:
|
<<: Detaillierte Analyse der MySQL-Optimierung von like und = Leistung
>>: So setzen Sie das Root-Passwort in Linux mysql-5.6 zurück
Inhaltsverzeichnis 1. Code-Analyse 2. Quellcode Q...
Dieser Artikel beschreibt anhand eines Beispiels ...
Wir möchten in HTML und CSS die Farbe eines Butto...
Wirkungsprüfungsadresse: Tourplan (uplanok.com) C...
In diesem Projekt wird der Docker-Container zum E...
Installationsskript Ubuntu / CentOS Es scheint ei...
In diesem Artikel wird das kostenlose MySQL-Insta...
Inhaltsverzeichnis verwenden Installieren Wie wir...
Heute möchte ich einen Countdown von Vue und Mome...
1. Stellen Sie zunächst eine Remoteverbindung zum...
Inhaltsverzeichnis Hintergrund erkunden Zusammenf...
Ich stehe seit einiger Zeit mit MGR in Kontakt. M...
Eine CSS-Layout- und Stilfrage: Wie kann man die ...
Das Prinzip von nginx zur Erzielung einer Ressour...
Das Element UI-Tabelle verfügt nicht über eine in...