Heim Web-Frontend js-Tutorial Welche verschiedenen Möglichkeiten gibt es, Reaktionskomponenten zu deklarieren?

Welche verschiedenen Möglichkeiten gibt es, Reaktionskomponenten zu deklarieren?

Nov 20, 2020 am 09:33 AM
react 组件

So deklarieren Sie Reaktionskomponenten: 1. Zustandslose Komponenten, die im funktionalen Stil definiert sind. 2. Komponenten, die im es5-nativen Stil definiert sind. 3. Komponenten, die im es6-Format definiert sind.

Welche verschiedenen Möglichkeiten gibt es, Reaktionskomponenten zu deklarieren?

So deklarieren Sie React-Komponenten:

1. Zustandslose Funktionskomponenten werden ab React-Version 0.14 erstellt. 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 zu anderen Komponenten konstruiert werden können

Diese Art durch mehrere einfache Designmuster, die dann kombiniert werden in einer großen Anwendung werden 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)
Nach dem Login kopieren

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 Komponente wird nicht instanziiert und die Gesamtrenderleistung wird verbessert
  • Weil die Komponente in eine Funktion der Rendermethode vereinfacht wird, weil es sich um zustandslose Komponenten handelt Zustandslose Komponenten befinden sich nicht im Prozess der Komponenteninstanziierung, und der Nicht-Instanziierungsprozess muss keinen überschüssigen Speicher zuweisen, wodurch die Leistung bis zu einem gewissen Grad verbessert wird.

    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 Statusverwaltung 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, ohne dass Nebenwirkungen auftreten.
  • Zustandslose Komponenten werden in großen Projekten dazu ermutigt, die ursprünglich riesigen Komponenten zu unterteilen Führen Sie in Zukunft eine Reihe von Optimierungen für zustandslose Komponenten durch, z. B. bedeutungslose Prüfungen und Speicherzuweisungen. Versuchen Sie daher, wann immer möglich, zustandslose Komponenten zu verwenden.

    </li>2. React.createClass</ul>

    <strong>2、React.createClass</strong>

    React.createClass是react刚开始推荐的创建组件的方式,这是ES5的原生的JavaScript来实现的React组件,其形式如下:

    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;
    };
    Nach dem Login kopieren

    与无状态组件相比,React.createClass和后面要描述的React.Component都是创建有状态的组件,这些组件是要被实例化的,并且可以访问组件的生命周期方法。但是随着React的发展,React.createClass形式自身的问题暴露出来:

    React.createClass会自绑定函数方法(不像React.Component只绑定需要关心的函数)导致不必要的性能开销,增加代码过时的可能性。

    React.createClass的mixins不够自然、直观;React.Component形式非常适合高阶组件(Higher Order Components--HOC),它以更直观的形式展示了比mixins更强大的功能,并且HOC是纯净的JavaScript,不用担心他们会被废弃。HOC可以参考《无状态组件(Stateless Component) 与高阶组件》。

    <strong>3、React.Component</strong>React.createClass ist die erste empfohlene Methode, um Komponenten in React zu erstellen. Ihre Form ist wie folgt :

    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;
    };
    Nach dem Login kopieren

    Im Vergleich zu zustandslosen Komponenten erstellen React.createClass und React.Component beide zustandsbehaftete Komponenten, die instanziiert werden müssen und auf die Lebenszyklusmethoden zugreifen können. Mit der Entwicklung von React werden jedoch 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ötigem Ergebnis führt Leistungsaufwand und erhöhte Wahrscheinlichkeit, dass Code veraltet ist.

    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 a aufweist intuitivere Formularfunktionen haben und HOC reines JavaScript ist, besteht kein Grund zur Sorge, dass sie veraltet sein könnten. Informationen zu HOC finden Sie unter „Zustandslose Komponenten und Komponenten höherer Ordnung“.

    3. React.Component🎜🎜🎜React.Component erstellt Reaktionskomponenten in Form von ES6 und wird React letztendlich ersetzen. createClass-Formular; im Vergleich zu React.createClass kann eine bessere Code-Wiederverwendung erreicht werden. Ändern Sie die Form von React.createClass oben in die Form von React.Component wie folgt: 🎜rrreee🎜🎜Verwandte Lernempfehlungen: 🎜Javascript-Video-Tutorial🎜🎜🎜

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

Erklärung dieser Website
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

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)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erstellen Sie eine Echtzeit-Chat-App mit React und WebSocket So erstellen Sie eine Echtzeit-Chat-App mit React und WebSocket Sep 26, 2023 pm 07:46 PM

So erstellen Sie eine Echtzeit-Chat-Anwendung mit React und WebSocket Einführung: Mit der rasanten Entwicklung des Internets hat die Echtzeitkommunikation immer mehr Aufmerksamkeit auf sich gezogen. Live-Chat-Apps sind aus dem modernen Sozial- und Arbeitsleben nicht mehr wegzudenken. In diesem Artikel wird erläutert, wie Sie mit React und WebSocket eine einfache Echtzeit-Chat-Anwendung erstellen, und es werden spezifische Codebeispiele bereitgestellt. 1. Technische Vorbereitung Bevor wir mit der Erstellung einer Echtzeit-Chat-Anwendung beginnen, müssen wir die folgenden Technologien und Tools vorbereiten: React: eine zum Erstellen

Leitfaden zur React-Front-End- und Back-End-Trennung: So erreichen Sie die Entkopplung und unabhängige Bereitstellung von Front-End und Back-End Leitfaden zur React-Front-End- und Back-End-Trennung: So erreichen Sie die Entkopplung und unabhängige Bereitstellung von Front-End und Back-End Sep 28, 2023 am 10:48 AM

React-Leitfaden zur Front-End- und Back-End-Trennung: So erreichen Sie die Front-End- und Back-End-Entkopplung und die unabhängige Bereitstellung. Es sind spezifische Codebeispiele erforderlich. In der heutigen Webentwicklungsumgebung ist die Front-End- und Back-End-Trennung zu einem Trend geworden. Durch die Trennung von Front-End- und Back-End-Code kann die Entwicklungsarbeit flexibler und effizienter gestaltet und die Zusammenarbeit im Team erleichtert werden. In diesem Artikel wird erläutert, wie Sie mithilfe von React eine Front-End- und Back-End-Trennung erreichen und so die Ziele der Entkopplung und unabhängigen Bereitstellung erreichen. Zuerst müssen wir verstehen, was Front-End- und Back-End-Trennung ist. Im traditionellen Webentwicklungsmodell sind Front-End und Back-End gekoppelt

So erstellen Sie einfache und benutzerfreundliche Webanwendungen mit React und Flask So erstellen Sie einfache und benutzerfreundliche Webanwendungen mit React und Flask Sep 27, 2023 am 11:09 AM

So erstellen Sie mit React und Flask einfache und benutzerfreundliche Webanwendungen. Einführung: Mit der Entwicklung des Internets werden die Anforderungen an Webanwendungen immer vielfältiger und komplexer. Um den Anforderungen der Benutzer an Benutzerfreundlichkeit und Leistung gerecht zu werden, wird es immer wichtiger, moderne Technologie-Stacks zum Aufbau von Netzwerkanwendungen zu verwenden. React und Flask sind zwei sehr beliebte Frameworks für die Front-End- und Back-End-Entwicklung, und sie arbeiten gut zusammen, um einfache und benutzerfreundliche Webanwendungen zu erstellen. In diesem Artikel erfahren Sie, wie Sie React und Flask nutzen

So installieren Sie die DirectPlay-Komponente der alten Windows 10-Version So installieren Sie die DirectPlay-Komponente der alten Windows 10-Version Dec 28, 2023 pm 03:43 PM

Viele Benutzer stoßen beim Spielen einiger Spiele unter Win10 immer auf Probleme, wie z. B. ein Einfrieren des Bildschirms und unscharfe Bildschirme. Zu diesem Zeitpunkt können wir das Problem lösen, indem wir die Directplay-Funktion aktivieren, und die Bedienungsmethode der Funktion ist ebenfalls sehr einfach. So installieren Sie DirectPlay, die alte Komponente von Win10 1. Geben Sie „Systemsteuerung“ in das Suchfeld ein und öffnen Sie es. 2. Wählen Sie große Symbole als Anzeigemethode. 3. Suchen Sie nach „Programme und Funktionen“. 4. Klicken Sie links, um oder zu aktivieren Win-Funktionen ausschalten 5. Wählen Sie hier die alte Version aus. Aktivieren Sie einfach das Kontrollkästchen

So erstellen Sie eine zuverlässige Messaging-App mit React und RabbitMQ So erstellen Sie eine zuverlässige Messaging-App mit React und RabbitMQ Sep 28, 2023 pm 08:24 PM

So erstellen Sie eine zuverlässige Messaging-Anwendung mit React und RabbitMQ Einführung: Moderne Anwendungen müssen zuverlässiges Messaging unterstützen, um Funktionen wie Echtzeitaktualisierungen und Datensynchronisierung zu erreichen. React ist eine beliebte JavaScript-Bibliothek zum Erstellen von Benutzeroberflächen, während RabbitMQ eine zuverlässige Messaging-Middleware ist. In diesem Artikel wird erläutert, wie Sie React und RabbitMQ kombinieren, um eine zuverlässige Messaging-Anwendung zu erstellen, und es werden spezifische Codebeispiele bereitgestellt. RabbitMQ-Übersicht:

React Router-Benutzerhandbuch: So implementieren Sie die Front-End-Routing-Steuerung React Router-Benutzerhandbuch: So implementieren Sie die Front-End-Routing-Steuerung Sep 29, 2023 pm 05:45 PM

ReactRouter-Benutzerhandbuch: So implementieren Sie die Front-End-Routing-Steuerung Mit der Popularität von Single-Page-Anwendungen ist das Front-End-Routing zu einem wichtigen Bestandteil geworden, der nicht ignoriert werden kann. Als beliebteste Routing-Bibliothek im React-Ökosystem bietet ReactRouter umfangreiche Funktionen und benutzerfreundliche APIs, wodurch die Implementierung des Front-End-Routings sehr einfach und flexibel ist. In diesem Artikel wird die Verwendung von ReactRouter vorgestellt und einige spezifische Codebeispiele bereitgestellt. Um ReactRouter zuerst zu installieren, benötigen wir

So erstellen Sie Echtzeit-Datenverarbeitungsanwendungen mit React und Apache Kafka So erstellen Sie Echtzeit-Datenverarbeitungsanwendungen mit React und Apache Kafka Sep 27, 2023 pm 02:25 PM

So verwenden Sie React und Apache Kafka zum Erstellen von Echtzeit-Datenverarbeitungsanwendungen. Einführung: Mit dem Aufkommen von Big Data und Echtzeit-Datenverarbeitung ist die Erstellung von Echtzeit-Datenverarbeitungsanwendungen für viele Entwickler zum Ziel geworden. Die Kombination von React, einem beliebten Front-End-Framework, und Apache Kafka, einem leistungsstarken verteilten Messaging-System, kann uns beim Aufbau von Echtzeit-Datenverarbeitungsanwendungen helfen. In diesem Artikel wird erläutert, wie Sie mit React und Apache Kafka Echtzeit-Datenverarbeitungsanwendungen erstellen

Winkelkomponenten und ihre Anzeigeeigenschaften: Nicht-Block-Standardwerte verstehen Winkelkomponenten und ihre Anzeigeeigenschaften: Nicht-Block-Standardwerte verstehen Mar 15, 2024 pm 04:51 PM

Das Standardanzeigeverhalten für Komponenten im Angular-Framework gilt nicht für Elemente auf Blockebene. Diese Designwahl fördert die Kapselung von Komponentenstilen und ermutigt Entwickler, bewusst zu definieren, wie jede Komponente angezeigt wird. Durch explizites Festlegen der CSS-Eigenschaft display kann die Anzeige von Angular-Komponenten vollständig gesteuert werden, um das gewünschte Layout und die gewünschte Reaktionsfähigkeit zu erreichen.

See all articles