1. EinleitungDie alleinige Verwendung von TypeScript führt nicht zu hohen Lernkosten, aber die meisten Projekte von Front-End-Entwicklern basieren auf Frameworks. Wenn Sie beispielsweise in Kombination mit Frameworks wie Vue und React verwendet werden, gibt es eine gewisse Schwelle Um React-Code mit TypeScript zu schreiben, müssen Sie zusätzlich zur Typescript-Bibliothek @types/react und @types/react-dom installieren. npm ich @types/react -s npm ich @types/react-dom -s Der Grund für die Verwendung von @types-Bibliotheken besteht darin, dass viele JavaScript-Bibliotheken keine eigenen TypeScript-Deklarationsdateien bereitstellen. Daher kennt ts die Typen dieser Bibliotheken und den entsprechenden exportierten Inhalt nicht. Hier ist @types tatsächlich die DefinitelyTyped-Bibliothek in der Community, die die Deklarationen der meisten derzeit auf dem Markt befindlichen JavaScript-Bibliotheken definiert. Wenn Sie also die entsprechende @types-Deklaration des entsprechenden Javascripts herunterladen, können Sie die entsprechende Typdefinition der Bibliothek verwenden 2. NutzungBeim Schreiben von React-Projekten werden folgende Komponenten am häufigsten verwendet:
Zustandslose KomponentenDie Hauptfunktion besteht darin, die Benutzeroberfläche anzuzeigen. Bei einer Deklaration mit js würde sie wie folgt aussehen: importiere * als React von 'react' export const Logo = Requisiten => { const { Logo, Klassenname, Alt } = Requisiten zurückkehren ( <img src={logo} Klassenname={Klassenname} alt={alt} /> ) } Zu diesem Zeitpunkt wird jedoch bei ts eine Fehlermeldung angezeigt. Der Grund dafür ist, dass der Porps-Typ nicht definiert ist. Zu diesem Zeitpunkt können Sie die Schnittstelle interface verwenden, um Porps wie folgt zu definieren: importiere * als React von 'react' Schnittstelle IProps { Logo?: Zeichenfolge Klassenname?: Zeichenfolge alt?: Zeichenfolge } exportiere const Logo = (Eigenschaften: IProps) => { const { Logo, Klassenname, Alt } = Requisiten zurückkehren ( <img src={logo} Klassenname={Klassenname} alt={alt} /> ) } Wir wissen jedoch alle, dass in Props eine untergeordnete Eigenschaft vorhanden ist, und wir können nicht in jeder Porps-Schnittstelle ein weiteres untergeordnetes Element definieren, und zwar wie folgt: Schnittstelle IProps { Logo?: Zeichenfolge Klassenname?: Zeichenfolge alt?: Zeichenfolge Kinder?: ReactNode } Eine standardisiertere Schreibweise besteht darin, die in React definierte FC-Eigenschaft zu verwenden, die den untergeordneten Typ bereits wie folgt definiert hat: exportiere const Logo: React.FC<IProps> = props => { const { Logo, Klassenname, Alt } = Requisiten zurückkehren ( <img src={logo} Klassenname={Klassenname} alt={alt} /> ) }
Zustandsbehaftete KomponentenKann eine Klassenkomponente mit Eigenschaften und Statusattributen sein Wenn Sie eine Typescript-Deklaration verwenden, sieht es folgendermaßen aus: importiere * als React von 'react' Schnittstelle IProps { Farbe: Schnur, Größe?: Zeichenfolge, } Schnittstelle IState { Anzahl: Zahl, } Klasse App erweitert React.Component<IProps, IState> { öffentlicher Status = { Anzahl: 1, } öffentliches Rendern () { zurückkehren ( <div>Hallo Welt</div> ) } } Oben werden Generika verwendet, um die Typen von Requisiten und Zuständen zu definieren, sodass Sie bei ihrer Verwendung bessere intelligente Eingabeaufforderungen im Compiler erhalten. Die Definition der generischen Komponentenklasse finden Sie in der React-Typdefinitionsdatei node_modules/@types/react/index.d.ts, wie unten dargestellt: Klasse Komponente<P, S> { schreibgeschützte Eigenschaften: Schreibgeschützt<{ children?: ReactNode }> & Schreibgeschützt<P>; Status: Nur-Lese<S>; } Wie oben zu sehen ist, definiert die Statuseigenschaft auch einen lesbaren Typ, um direkte Aufrufe von this.state zum Aktualisieren des Status zu verhindern. Kontrollierte KomponentenDie Eigenschaft einer gesteuerten Komponente besteht darin, dass der Inhalt des Elements durch den Zustand der Komponente gesteuert wird. Da es sich bei den Ereignissen innerhalb der Komponente um synthetische Ereignisse handelt, sind sie nicht mit nativen Ereignissen identisch. Beispielsweise ändert eine Eingabekomponente ihren internen Zustand. Die allgemeine Definition lautet wie folgt: privater Updatewert(e: React.ChangeEvent<HTMLInputElement>) { this.setState({ itemText: e.target.value }) } Allgemeine Ereignisobjekttypen:
T empfängt einen DOM-Elementtyp AbschlussDas Obige ist nur eine einfache Verwendung von Typescript in React-Projekten, aber beim Schreiben von React-Projekten gibt es auch Hooks, Standardparameter und Stores usw. Die Lernkosten für die Verwendung von Typescript im Framework sind relativ hoch und Sie müssen es kontinuierlich schreiben, um kompetent zu werden Dies ist das Ende dieses Artikels über die Implementierung von TypeScript in React-Projekten. Weitere Inhalte zur Anwendung von TypeScript in React-Projekten 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:
|
<<: Warum MySQL große Transaktionen vermeiden sollte und wie man sie löst
>>: Analyse des MySQL-Warnprotokolls zu abgebrochenen Verbindungen
In diesem Artikel finden Sie das Installations- u...
1. Linux unter VMware Workstation: 1. Quelle aktu...
JBoss verwendet Tomcat als Webcontainer. Die Konf...
Dies ist eine Website, die ich nachgeahmt habe, a...
Szenario 1. Pflegen Sie ein Bürgersystem mit eine...
1.1. Herunterladen: Laden Sie das Zip-Paket von d...
bgcolor="Textfarbe" background="Hin...
CSS: Code kopieren Der Code lautet wie folgt: *{Ra...
MySQL 5.7.8 und höher unterstützt nun einen nativ...
Bei der Entwicklung für Mobilgeräte tritt häufig ...
Inhaltsverzeichnis 1. Verwenden Sie die UUID-Funk...
Laden Sie das MySQL-Installationsprogramm herunte...
Inhaltsverzeichnis 1. Grundlegende Ereignisbehand...
1. Online-Textgenerator BlindTextGenerator: Für D...
Derselbe Server simuliert die Master-Slave-Synchr...