Heim > Web-Frontend > js-Tutorial > Hauptteil

Einige häufige Interviewfragen zu React (teilen)

青灯夜游
Freigeben: 2020-09-02 15:39:40
nach vorne
5402 Leute haben es durchsucht

Einige häufige Interviewfragen zu React (teilen)

[Ähnliche Themenempfehlungen: Interviewfragen reagieren (2020)]

1 Redux-Middleware

Antwort: Middle The Die Software bietet einen Plug-in-Modus von Drittanbietern, um den Prozess des Abfangens von Aktionen anzupassen –> Become Action -> Middlewares -> Dieser Mechanismus ermöglicht es uns, den Datenfluss zu ändern und Funktionen wie asynchrone Aktionen, Aktionsfilterung, Protokollausgabe, Ausnahmeberichte usw. zu implementieren.

Gemeinsame Middleware: redux-logger: stellt Protokollausgabe bereit; redux-promise: verarbeitet asynchrone Vorgänge; der Rückgabewert von actionCreator ist Promise

2, Redux What sind die Nachteile

Antwort: 1. Die von einer Komponente benötigten Daten müssen von der übergeordneten Komponente übergeben werden und können nicht wie Flussmittel direkt aus dem Speicher abgerufen werden.

2. Wenn die relevanten Daten einer Komponente aktualisiert werden, wird die übergeordnete Komponente dennoch neu gerendert, auch wenn die übergeordnete Komponente diese nicht verwenden muss, was sich auf die Effizienz auswirken oder komplexe Schreibvorgänge erfordern kann ShouldComponentUpdate zur Beurteilung.

3. Wie werden Reaktionskomponenten in Geschäftskomponenten und technische Komponenten unterteilt?

Antwort: Komponenten werden normalerweise entsprechend ihrer Verantwortlichkeiten in UI-Komponenten und Container-Komponenten unterteilt. UI-Komponenten sind für die UI-Präsentation verantwortlich, und Containerkomponenten sind für die Verwaltung von Daten und Logik verantwortlich. Die beiden werden über die von React-Redux bereitgestellte Verbindungsmethode verbunden.

4. Lebenszyklusfunktion reagieren

Antwort: 1. Initialisierungsphase:

getDefaultProps: Standardeigenschaften der Instanz abrufen

getInitialState: Alle abrufen Instanz-Initialisierungsstatus

componentWillMount: Die Komponente wird gerade geladen und auf der Seite gerendert.

render: Die Komponente generiert hier einen virtuellen DOM-Knoten.

componentDidMount: Die Komponente ist tatsächlich geladen, nachdem es geladen wurde

2. Ausführungsstatus:

componentWillReceiveProps: Wird aufgerufen, wenn die Komponente im Begriff ist, Eigenschaften zu empfangen.

shouldComponentUpdate: Wenn die Komponente neue oder neue Eigenschaften erhält Status (kann false zurückgeben, wird nach dem Empfang von Daten nicht aktualisiert, verhindert den Aufruf von Render und nachfolgende Funktionen werden nicht weiter ausgeführt)

componentWillUpdate: Die Komponente wird gerade aktualisiert und kann Eigenschaften und Status nicht ändern

render: Die Komponente wird neu gerendert

componentDidUpdate: Die Komponente wurde aktualisiert

3. Zerstörungsphase:

componentWillUnmount: Die Komponente ist ungefähr zerstört werden

5. Welche periodische Funktion ist die Optimierung der Reaktionsleistung?

Antwort: ShouldComponentUpdate Diese Methode wird verwendet, um zu bestimmen, ob die Render-Methode aufgerufen werden muss, um den Dom neu zu zeichnen. Da das Rendern von DOM viel Leistung verbraucht, kann die Leistung erheblich verbessert werden, wenn wir einen optimierten DOM-Diff-Algorithmus in die Methode ShouldComponentUpdate schreiben können.

6. Warum verbessert virtueller Dom die Leistung?

Antwort: Virtueller Dom entspricht dem Hinzufügen eines Caches zwischen js und echtem Dom, wobei der Dom-Diff-Algorithmus verwendet wird, um unnötige Dom-Operationen zu vermeiden Leistung.

Die spezifischen Implementierungsschritte sind wie folgt:

1. Verwenden Sie die JavaScript-Objektstruktur, um die Struktur des DOM-Baums darzustellen, und verwenden Sie dann diesen Baum, um einen echten DOM-Baum zu erstellen document;

2. Wenn sich der Status ändert, wird ein neuer Objektbaum erstellt. Vergleichen Sie dann den neuen Baum mit dem alten Baum und notieren Sie die Unterschiede zwischen den beiden Bäumen.

Wenden Sie die in Schritt 2 aufgezeichneten Unterschiede auf den in Schritt 1 erstellten echten DOM-Baum an, und die Ansicht wird aktualisiert.

7. Diff-Algorithmus?

Antwort: 1. Zerlegen Sie die Baumstruktur nach Ebenen und vergleichen Sie nur Elemente auf derselben Ebene.

2. Fügen Sie jeder Einheit der Listenstruktur ein eindeutiges Schlüsselattribut hinzu, um den Vergleich zu erleichtern.

3. React stimmt nur mit Komponenten derselben Klasse überein (die Klasse bezieht sich hier auf den Namen der Komponente)

4 Beim Aufruf der setState-Methode der Komponente , React wird als schmutzig markiert. Am Ende jeder Ereignisschleife überprüft React alle als schmutzig markierten Komponenten und zeichnet sie neu.

6. Selektives Teilbaum-Rendering. Entwickler können ShouldComponentUpdate überschreiben, um die Diff-Leistung zu verbessern.

8. React-Lösung zur Leistungsoptimierung

Antwort: 1) Schreiben Sie ShouldComponentUpdate um, um unnötige DOM-Operationen zu vermeiden.

2) Verwenden Sie die Produktionsversion von React.js.

3) Verwenden Sie die Taste, um React dabei zu helfen, die kleinsten Änderungen aller Unterkomponenten in der Liste zu identifizieren

9 Beschreiben Sie kurz die Idee von Flux

Antwort: Das größte Merkmal von Fluss ist die „Einbahnstraße“ des Datenflusses.

1. Der Benutzer besucht View

2. View gibt die Aktion des Benutzers aus

3. 4 Nachdem .Store aktualisiert wurde, wird ein „Änderungs“-Ereignis gesendet

5. Nach dem Empfang des „Änderungs“-Ereignisses wird die Seite aktualisiert

10 Welche Art von Gerüst wurde verwendet? das React-Projekt? Mern? Yeoman?

Antwort: Mern: MERN ist ein Gerüsttool, das problemlos isomorphe JS-Anwendungen mit Mongo, Express, React und NodeJS generieren kann. Es minimiert die Installationszeit und ermöglicht es Ihnen, bewährte Technologie zu nutzen, um die Entwicklung zu beschleunigen.

11. Kennen Sie React?

Antwort: Ja, React ist eine von Facebook entwickelte, leichte Komponentenbibliothek. Sie wird verwendet, um einige Probleme der Front-End-Ansichtsebene zu lösen, die das Problem der V-Ebene in der internen Instagram-Website darstellt verwendet React.

12. Welche Probleme löst React?

Antwort: Drei Probleme wurden gelöst: 1. Problem mit der Wiederverwendung von Komponenten, 2. Leistungsproblem, 3. Kompatibilitätsproblem:

13.

Antwort: Die Vereinbarung, der React folgt, ist „BSD-Lizenz + Patentierte Open-Source-Vereinbarung“. Diese Vereinbarung ist ziemlich seltsam. Wenn Ihr Produkt nicht mit Facebook konkurriert, können Sie React frei verwenden, aber wenn es Konkurrenz gibt , , Ihre React-Nutzungslizenz wird gekündigt

14 Verstehen Sie, dass ShouldComponentUpdate erfolgen soll?

Antwort: Die virtuelle Dom-Technologie von React erfordert einen ständigen Diff-Vergleich zwischen Dom und virtuellem Dom. Wenn der Dom-Baum groß ist, ist dieser Vergleichsvorgang zeitaufwändiger, daher bietet React eine Patch-Funktion wie ShouldComponentUpdate If Wenn wir bei einigen Änderungen nicht möchten, dass eine Komponente aktualisiert wird oder wenn sie aktualisiert wird und gleich bleibt wie zuvor, können wir diese Funktion verwenden, um React direkt mitzuteilen, wodurch Diff-Operationen überflüssig werden und die Effizienz weiter verbessert wird.

15. Wie funktioniert Reagieren?

Antwort: React erstellt ein virtuelles DOM (virtuelles DOM). Wenn sich der Zustand einer Komponente ändert, markiert React zunächst die Änderungen im virtuellen DOM durch den „Diffing“-Algorithmus. Der zweite Schritt ist der Abgleich, und das DOM wird mit den Ergebnissen des Diffs aktualisiert.

16. Welche Vorteile bietet die Verwendung von React?

Antwort: 1. Es ist leicht zu erkennen, wie eine Komponente gerendert wird, indem man sich nur die Renderfunktion ansieht

2 Die Einführung von JSX macht den Komponentencode besser lesbar und erleichtert das Verständnis des Layouts von Komponenten oder wie Komponenten aufeinander verweisen

3. Unterstützt serverseitiges Rendering, was SEO und Leistung verbessern kann

5. Reagieren konzentriert sich nur auf die Ansichtsebene und kann daher mit jedem anderen Framework (z. B. Backbone.js, Angular.js) verwendet werden

17 Es gibt einen Unterschied zwischen der Präsentationskomponente (Präsentationskomponente) und dem Container Komponente (Containerkomponente) Was ist der Unterschied?

Antwort: 1. Anzeigekomponenten legen Wert darauf, wie die Komponenten aussehen. Display akzeptiert speziell Daten und Rückrufe über Requisiten und hat fast nie einen eigenen Status. Wenn die Anzeigekomponente jedoch einen eigenen Status hat, kümmert sie sich normalerweise nur um den UI-Status und nicht um den Status der Daten.

2. Bei Containerkomponenten geht es mehr darum, wie Komponenten funktionieren. Containerkomponenten stellen Daten und Verhalten für die Präsentationskomponente oder andere Containerkomponenten bereit. Sie rufen Flux-Aktionen auf und stellen sie als Rückrufe für die Präsentationskomponente bereit. Containerkomponenten sind häufig zustandsbehaftet, da sie Datenquellen (für andere Komponenten) sind

18 Was ist der Unterschied zwischen einer Klassenkomponente und einer Funktionskomponente?

Antwort: 1. Mit Klassenkomponenten können Sie nicht nur weitere zusätzliche Funktionen verwenden, z. B. den eigenen Status und Lebenszyklus-Hooks der Komponente, sondern ermöglichen der Komponente auch den direkten Zugriff auf den Speicher und die Verwaltung des Status

2. Wenn eine Komponente nur Requisiten empfängt und die Komponente selbst auf der Seite rendert, ist die Komponente eine „zustandslose Komponente“ und kann mit einer reinen Funktion erstellt werden. Solche Komponenten werden auch dumme Komponenten oder Präsentationskomponenten genannt

19 Was ist der Unterschied zwischen Zustand (Zustand) und Requisiten (einer Komponente)?

Antwort: 1. State ist eine Datenstruktur, die für den Standardwert der Daten verwendet wird, die beim Mounten der Komponente erforderlich sind. Der Status kann sich im Laufe der Zeit ändern, meistens jedoch aufgrund des Verhaltens von Benutzerereignissen.

2. Props (Abkürzung für Properties) ist die Konfiguration der Komponente. Requisiten werden von übergeordneten Komponenten an untergeordnete Komponenten weitergegeben, und was untergeordnete Komponenten betrifft, sind Requisiten unveränderlich. Eine Komponente kann ihre eigenen Requisiten nicht ändern, sie kann jedoch die Requisiten ihrer Unterkomponenten zusammenfassen (einheitliche Verwaltung). Auch Requisiten sind nicht nur Daten – Callback-Funktionen können auch über Requisiten übergeben werden.

20. Wo soll die Ajax-Anfrage in der React-Komponente initiiert werden?

Antwort: In React-Komponenten sollten Netzwerkanfragen in ComponentDidMount initiiert werden. Diese Methode wird ausgeführt, wenn die Komponente zum ersten Mal „gemountet“ (zum DOM hinzugefügt) wird und nur einmal im Lebenszyklus der Komponente ausgeführt. Noch wichtiger ist, dass Sie nicht garantieren können, dass die Ajax-Anfrage abgeschlossen ist, bevor die Komponente gemountet wird. Wenn dies der Fall ist, bedeutet dies, dass Sie versuchen, setState für eine nicht gemountete Komponente aufzurufen, was nicht funktioniert. Durch eine Netzwerkanforderung in „componentDidMount“ wird sichergestellt, dass eine Komponente zur Aktualisierung bereit ist.

21. Was ist eine kontrollierte Komponente?

Answer; In HTML behalten Formularelemente wie und