suchen
HeimWeb-FrontendFront-End-Fragen und AntwortenEs gibt verschiedene Möglichkeiten, Reaktionskomponenten zu deklarieren

Es gibt drei Möglichkeiten, Reaktionskomponenten zu deklarieren: 1. Verwenden Sie den Funktionsstil, um zustandslose Komponenten zu definieren. 2. Verwenden Sie die Methode „React.createClass()“, um Komponenten zu definieren Verwenden Sie das ES6-Formular, um Komponenten zu definieren.

Es gibt verschiedene Möglichkeiten, Reaktionskomponenten zu deklarieren

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Reaktionsversion 17.0.1, Dell G3-Computer.

Die Art und Weise, wie React Komponenten deklariert (erstellt):

Nach der Einführung von React gab es drei Möglichkeiten, React-Komponenten aus unterschiedlichen Gründen zu definieren, alle mit demselben Ziel:

Die drei spezifischen Arten:

  • Funktionale Definition zustandsloser Komponenten

  • React.createClass() definiert Komponenten

  • React.Component() definiert Komponenten

Obwohl es drei Möglichkeiten gibt, Reaktionskomponenten zu definieren, dann diese drei Definitionsmöglichkeiten Komponenten sind Was ist der Unterschied? Mit anderen Worten: Warum erscheinen entsprechende Definitionen? Lassen Sie uns es im Folgenden kurz vorstellen.

Zustandslose Funktionskomponenten

Die Erstellung zustandsloser Funktionskomponenten begann in React Version 0.14. Es wird verwendet, um reine Anzeigekomponenten zu erstellen, die nur für die Anzeige basierend auf den eingehenden Requisiten verantwortlich sind und keine Zustandsoperationen beinhalten. Spezifische zustandslose Funktionskomponenten, wies der Beamte darauf hin:

In den meisten React-Codes sind die meisten Komponenten als zustandslose Komponenten geschrieben, die durch einfache Kombination in andere Komponenten integriert werden können, beispielsweise durch mehrere einfache und anschließende Entwurfsmuster zum Zusammenführen eine große Anwendung wird befürwortet.

Eine zustandslose Funktionskomponente wird formal als Komponentenklasse mit nur einer Rendermethode dargestellt. Sie wird in Form einer Funktion oder ES6-Pfeilfunktion erstellt und die Komponente ist zustandslos. Die spezifische Erstellungsform lautet wie folgt:

function HelloComponent(props, /* context */) {
  return <div>Hello {props.name}</div>
}
ReactDOM.render(<HelloComponent name="Sebastian" />, mountNode)

Die Erstellungsform zustandsloser Komponenten macht den Code besser lesbar und reduziert eine Menge redundanten Codes, wodurch er auf nur eine Rendermethode vereinfacht wird, was den Komfort beim Schreiben einer Komponente erheblich erhöht Darüber hinaus weisen zustandslose Komponenten die folgenden bemerkenswerten Merkmale auf:

Die Erstellungsform zustandsloser Komponenten macht den Code besser lesbar und reduziert eine Menge redundanten Codes, wodurch er auf nur eine Rendermethode vereinfacht wird, was die Lesbarkeit des Codes erheblich verbessert Erhöht den Komfort beim Schreiben einer Komponente. Darüber hinaus weisen zustandslose Komponenten die folgenden wichtigen Funktionen auf:

  • Die Komponente wird nicht instanziiert und die Gesamtrenderleistung wird verbessert

    da die Komponente in ein Rendering optimiert wird Aufgrund der Funktion der Methode befindet sich die zustandslose Komponente nicht im Prozess der Komponenteninstanziierung. Daher ist es nicht erforderlich, überschüssigen Speicher zuzuweisen, sodass die Leistung verbessert wird gewissermaßen.

  • Komponenten können nicht auf dieses Objekt zugreifen

    Zustandslose Komponenten haben keinen Instanziierungsprozess, daher können sie nicht auf die Objekte in der Komponente this zugreifen. Beispielsweise kann nicht auf this.ref, this.state usw. zugegriffen werden. Wenn Sie darauf zugreifen möchten, können Sie dieses Formular nicht zum Erstellen von Komponenten verwenden

  • Komponenten können nicht auf Lebenszyklusmethoden zugreifen

    Da zustandslose Komponenten kein Komponentenlebenszyklusmanagement und keine Zustandsverwaltung erfordern, ist dies bei der zugrunde liegenden Implementierung dieser Komponentenform der Fall Die Lebenszyklusmethoden der Komponente sind nicht implementiert. Daher können zustandslose Komponenten nicht am verschiedenen Lebenszyklusmanagement von Komponenten teilnehmen.

  • Zustandslose Komponenten können nur auf die Eingabe-Requisiten zugreifen. Dieselben Requisiten erzielen die gleichen Rendering-Ergebnisse ohne Nebenwirkungen.

Zustandslose Komponenten werden in großen Projekten dazu ermutigt, das Original so einfach wie möglich aufzuteilen Komponenten wird React in Zukunft auch eine Reihe von Optimierungen für zustandslose Komponenten durchführen, z. B. bedeutungslose Prüfungen und Speicherzuweisung. Versuchen Sie daher, wann immer möglich, zustandslose Komponenten zu verwenden.

React.createClass

React.createClass ist die Methode zum Erstellen von Komponenten, die zu Beginn von React empfohlen wurde. Dies ist eine React-Komponente, die von ES5s nativem JavaScript implementiert wird. Ihre Form ist wie folgt:

var InputControlES5 = React.createClass({
    propTypes: {//定义传入props中的属性各种类型
        initialValue: React.PropTypes.string
    },
    defaultProps: { //组件默认的props对象
        initialValue: &#39;&#39;
    },
    // 设置 initial state
    getInitialState: function() {//组件相关的状态对象
        return {
            text: this.props.initialValue || &#39;placeholder&#39;
        };
    },
    handleChange: function(event) {
        this.setState({ //this represents react component instance
            text: event.target.value
        });
    },
    render: function() {
        return (
            <div>
                Type something:
                <input onChange={this.handleChange} value={this.state.text} />
            </div>
        );
    }
});
InputControlES6.propTypes = {
    initialValue: React.PropTypes.string
};
InputControlES6.defaultProps = {
    initialValue: &#39;&#39;
};

Verglichen mit stateless Komponenten, React.createClass und React.Component, die später beschrieben werden, erstellen beide zustandsbehaftete Komponenten. Diese Komponenten müssen instanziiert werden und haben Zugriff auf die Lebenszyklusmethoden der Komponente. Aber mit der Entwicklung von React werden die Probleme des React.createClass-Formulars selbst offengelegt:

  • React.createClass bindet Funktionsmethoden selbst (im Gegensatz zu React.Component, das nur Funktionen bindet, die betroffen sein müssen), was zu … unnötiger Leistungsaufwand, der die Wahrscheinlichkeit erhöht, dass Code veraltet.

  • Die Mixins von React.createClass sind nicht natürlich und intuitiv genug; die React.Component-Form eignet sich sehr gut für Komponenten höherer Ordnung (Higher Order Components – HOC), die leistungsfähigere Funktionen als Mixins in einer intuitiveren Form zeigt , und HOC ist reines JavaScript, Sie müssen sich keine Sorgen machen, dass sie veraltet sind. Informationen zu HOC finden Sie unter „Zustandslose Komponenten und Komponenten höherer Ordnung“.

React.Component

React.Component是以ES6的形式来创建react的组件的,是React目前极为推荐的创建有状态组件的方式,最终会取代React.createClass形式;相对于 React.createClass可以更好实现代码复用。将上面React.createClass的形式改为React.Component形式如下:

class InputControlES6 extends React.Component {
    constructor(props) {
        super(props);

        // 设置 initial state
        this.state = {
            text: props.initialValue || &#39;placeholder&#39;
        };

        // ES6 类中函数必须手动绑定
        this.handleChange = this.handleChange.bind(this);
    }

    handleChange(event) {
        this.setState({
            text: event.target.value
        });
    }

    render() {
        return (
            <div>
                Type something:
                <input onChange={this.handleChange}
               value={this.state.text} />
            </div>
        );
    }
}
InputControlES6.propTypes = {
    initialValue: React.PropTypes.string
};
InputControlES6.defaultProps = {
    initialValue: &#39;&#39;
};

推荐学习:《react视频教程

Das obige ist der detaillierte Inhalt vonEs gibt verschiedene Möglichkeiten, Reaktionskomponenten zu deklarieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Reagieren gegen Backend Frameworks: Ein VergleichReagieren gegen Backend Frameworks: Ein VergleichApr 13, 2025 am 12:06 AM

React ist ein Front-End-Framework zum Erstellen von Benutzeroberflächen. Ein Back-End-Framework wird verwendet, um serverseitige Anwendungen zu erstellen. React bietet komponentierte und effiziente UI -Updates, und das Backend -Framework bietet eine vollständige Backend -Service -Lösung. Bei der Auswahl eines Technologie -Stacks sollten Projektanforderungen, Teamfähigkeiten und Skalierbarkeit berücksichtigt werden.

HTML und React: Die Beziehung zwischen Markup und KomponentenHTML und React: Die Beziehung zwischen Markup und KomponentenApr 12, 2025 am 12:03 AM

Die Beziehung zwischen HTML und React ist der Kern der Front-End-Entwicklung und erstellt gemeinsam die Benutzeroberfläche moderner Webanwendungen. 1) HTML definiert die Inhaltsstruktur und die Semantik und erstellt eine dynamische Schnittstelle durch Komponenten. 2) React -Komponenten verwenden die JSX -Syntax, um HTML einzubetten, um intelligentes Rendering zu erreichen. 3) Komponentenlebenszyklus verwaltet HTML -Rendering und aktualisiert dynamisch nach Zustand und Attributen. 4) Verwenden Sie Komponenten, um die HTML -Struktur zu optimieren und die Wartbarkeit zu verbessern. 5) Die Leistungsoptimierung umfasst die Vermeidung unnötiger Rendering, die Verwendung von Schlüsselattributen und die Einhaltung der einzigen Verantwortung der Komponente.

Reagieren und das Frontend: Bauen Sie interaktive Erlebnisse aufReagieren und das Frontend: Bauen Sie interaktive Erlebnisse aufApr 11, 2025 am 12:02 AM

React ist das bevorzugte Werkzeug zum Aufbau interaktiver Front-End-Erlebnisse. 1) React vereinfacht die UI -Entwicklung durch Komponentierungen und virtuelles DOM. 2) Komponenten werden in Funktionskomponenten und Klassenkomponenten unterteilt. Funktionskomponenten sind einfacher und Klassenkomponenten bieten mehr Lebenszyklusmethoden. 3) Das Arbeitsprinzip von React beruht auf virtuellen DOM- und Versöhnungsalgorithmus, um die Leistung zu verbessern. 4) State Management verwendet Usestate oder diese. 5) Die grundlegende Verwendung umfasst das Erstellen von Komponenten und das Verwalten von Status, und die erweiterte Verwendung umfasst benutzerdefinierte Haken und Leistungsoptimierung. 6) Zu den häufigen Fehlern gehören unsachgemäße Statusaktualisierungen und Leistungsprobleme, Debugging -Fähigkeiten umfassen die Verwendung von ReactDevtools und exzellent

Reagieren Sie und der Frontend Stack: die Werkzeuge und TechnologienReagieren Sie und der Frontend Stack: die Werkzeuge und TechnologienApr 10, 2025 am 09:34 AM

React ist eine JavaScript -Bibliothek zum Erstellen von Benutzeroberflächen mit ihren Kernkomponenten und staatlichen Verwaltung. 1) Vereinfachen Sie die UI -Entwicklung durch Komponentierungen und Staatsmanagement. 2) Das Arbeitsprinzip umfasst Versöhnung und Rendering, und die Optimierung kann durch React.Memo und Usememo implementiert werden. 3) Die grundlegende Verwendung besteht darin, Komponenten zu erstellen und zu rendern, und die erweiterte Verwendung umfasst die Verwendung von Hooks und ContextAPI. 4) Häufige Fehler wie eine unsachgemäße Status -Update können Sie ReactDevtools zum Debuggen verwenden. 5) Die Leistungsoptimierung umfasst die Verwendung von React.

Reacts Rolle bei HTML: Verbesserung der BenutzererfahrungReacts Rolle bei HTML: Verbesserung der BenutzererfahrungApr 09, 2025 am 12:11 AM

React kombiniert JSX und HTML, um die Benutzererfahrung zu verbessern. 1) JSX bettet HTML ein, um die Entwicklung intuitiver zu gestalten. 2) Der virtuelle DOM -Mechanismus optimiert die Leistung und reduziert den DOM -Betrieb. 3) Komponentenbasierte Verwaltungs-Benutzeroberfläche zur Verbesserung der Wartbarkeit. 4) Staatsmanagement und Ereignisverarbeitung verbessern die Interaktivität.

Reagieren Sie Komponenten: Erstellen wiederverwendbarer Elemente in HTMLReagieren Sie Komponenten: Erstellen wiederverwendbarer Elemente in HTMLApr 08, 2025 pm 05:53 PM

React -Komponenten können durch Funktionen oder Klassen definiert werden, wobei die UI -Logik eingefasst und Eingabedaten durch Props akzeptiert werden. 1) Komponenten definieren: Verwenden Sie Funktionen oder Klassen, um Reaktierungselemente zurückzugeben. 2) Rendering -Komponente: React -Aufrufe rendern Methode oder führt die Funktionskomponente aus. 3) Multiplexing -Komponenten: Daten durch Requisiten übergeben, um eine komplexe Benutzeroberfläche zu erstellen. Mit dem Lebenszyklusansatz von Komponenten kann die Logik in verschiedenen Phasen ausgeführt werden, wodurch die Entwicklungseffizienz und die Wartbarkeit des Codes verbessert werden.

Reagieren Sie den strengen ModuszweckReagieren Sie den strengen ModuszweckApr 02, 2025 pm 05:51 PM

React Strict Mode ist ein Entwicklungstool, das potenzielle Probleme in React -Anwendungen hervorhebt, indem zusätzliche Überprüfungen und Warnungen aktiviert werden. Es hilft, den Legacy -Code, unsichere Lebenszyklen und Nebenwirkungen zu identifizieren und moderne Reaktionspraktiken zu fördern.

Fragmente reagierenFragmente reagierenApr 02, 2025 pm 05:50 PM

React -Fragmente ermöglichen es, Kinder ohne zusätzliche Dom -Knoten zu gruppieren und Struktur, Leistung und Zugänglichkeit zu verbessern. Sie unterstützen Schlüssel für die effiziente Listenrendern.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)