


Wie erstelle ich eine App mit React? Einzelheiten zu den Schritten zum Erstellen umfangreicher Anwendungen mit React+Redux
In diesem Artikel wird hauptsächlich react+redux zum Erstellen umfangreicher Anwendungen vorgestellt. Werfen wir nun einen Blick auf den Inhalt des Artikels
Hintergrund
Unser Team hat ein Projekt, dessen Entwicklung lange dauert und bei dem eine gemischte Entwicklungsmethode aus Front- und Back-Ends verwendet wird Die Kosten sind sehr hoch und es wird online aufgedeckt. Es gibt viele Probleme. Und da es mit mehr als 100 Produktlinien des Unternehmens verbunden ist, gehen täglich zahlreiche Kundenbeschwerden und Produktlinien-Feedbacks ein. Im November 2017 haben wir das Produkt als Vorreiter übernommen, den Prozess auf Produktebene neu gestaltet und das Front- und Backend des Projekts neu aufgebaut. Als Frontend-Verantwortlicher nutze ich diesen Artikel, um einige meiner Erfahrungen im gesamten Prozess von der Technologieauswahl über die Entwicklung bis zur Einführung zu teilen.
Nachdenken über die Technologieauswahl
Lassen Sie uns zunächst einen Blick auf die folgenden Seiten unseres Projekts werfen, um einige ihrer Eigenschaften zusammenzufassen.
Bei unseren Seiten handelt es sich größtenteils um Formulare, die vom Benutzer ausgefüllt werden müssen. Es besteht keine Notwendigkeit, große Datenmengen anzufordern und darzustellen, wenn die Seite geöffnet ist Laden. Darüber hinaus muss eine Seite viele Zustände anzeigen (die drei Bilder oben sind beispielsweise Bestandteil des Projekts). Es gibt auch die wichtigsten Geschäftsanforderungen von Baidu, und verschiedene Unternehmen haben ihre eigenen, einzigartigen Kontobezeichnungen. Zusätzlich zu einigen allgemeinen Prozessen durchlaufen diese Konten auch einige Prozesse, die den Eigenschaften des Produkts entsprechen Linien.
Durch die Kombination dieser Geschäftsmerkmale und meiner bisherigen Entwicklungserfahrung mit Nodejs und React fällt meine allgemeine Technologieauswahl auf FIS3+Nodejs+React+Redux+React-Router. Was können diese Technologieauswahlen also bringen?
Das Frontend kann das Routing von Seitensprüngen auf der Browserseite steuern, was die Flexibilität der Frontend-Entwicklung erhöht;
Die Seite kann entsprechend den Geschäftsanforderungen angepasst werden. Wählen Sie im Dienst das Rendering der Template-Engine oder das isomorphe Rendering aus.
Das Frontend verwaltet Fehlercodekopie und Seitenkopie auf einheitliche Weise und verwendet Nodejs, um sie offline zu aktualisieren.
Mit Redux ist es bequemer, Daten komponentenübergreifend zu teilen (mehrere Seiten). Reduzieren Sie bedeutungslose Netzwerkanfragen. Verbessern Sie die Stabilität und Verfügbarkeit des Projektbetriebs.
Hier sprechen wir kurz über die Auswahl von Engineering-Tools. Das derzeit beliebteste Engineering-Tool der Branche ist Webpack. Abgesehen vom Lesen der Dokumentation habe ich nicht viel praktische Anwendungserfahrung. Ich habe immer geglaubt, dass die Verwendung von Tools Entwicklern dabei helfen soll, einige unbedenkliche Aufgaben zu lösen, die während des Entwicklungsprozesses häufige manuelle Vorgänge erfordern. Unabhängig vom Webpack können wir den Code immer noch manuell kompilieren, manuell bereitstellen und die Seite für die Entwicklung manuell aktualisieren. Durch die Verwendung von Tools wird diese Reihe von Prozessen nur kohärent und die Entwicklungskosten gesenkt.
Bei all meinen unternehmensbezogenen Projekten wähle ich FIS3. Ich denke auch, dass es einfach zu bedienen ist und meine verschiedenen technischen Anforderungen erfüllen kann. Ich bin nicht gegen Webpack. Ich habe einfach keinen Grund gefunden, das FIS3, das ich derzeit verwende, aufzugeben und Webpack zu verwenden.
Der Unterschied zwischen dem alten und dem neuen Framework-Mechanismus
Hier finden Sie eine kurze Einführung in einige Unterschiede im Rendering-Mechanismus der Rendering-Seite, nachdem Sie sich für die Technologieauswahl entschieden haben.
Zuvor verwendete das alte Projekt den PHP+Smarty-Rendering-Modus, um die Seite auf der Serverseite zu rendern und sie dann an den Front-End-Browser auszuspucken. Nach der Verwendung der neuen technischen Architektur ist die Art und Weise, wie wir Seiten rendern, flexibler. Sie können wählen, ob das Rendern auf der Serverseite erfolgen soll, ob das Rendern ausschließlich dem Browser überlassen werden soll oder ob das Rendern isomorph erfolgen soll. Da unsere Seite nicht viele Daten laden muss, wenn sie auf dem ersten Bildschirm angezeigt wird, lasse ich den Großteil der Seite dennoch auf der Browserseite rendern.
Ein weiterer Unterschied besteht darin, dass alle vorherigen Anfragen von Benutzern auf den PHP-Server fallen. Anfragen für das neue Framework werden an den Front-End-Nodejs-Server gesendet. Front-End-Ingenieuren geht es also nicht nur darum, gute Seiten zu schreiben und die Kompatibilität sicherzustellen. Es wird auch die technischen Fähigkeiten von Front-End-Ingenieuren testen.
Der Komfort, den React dem Front-End bietet
Front-End-Steuerungsrouting-Rendering-Seite
Die zuvor besprochene Technologieauswahl hat Die bereits erwähnte Verwendung von React-Router übernimmt die Steuerung des Seitenroutings. Darüber hinaus bietet React-Router die Funktion des asynchronen Ladens von Komponenten, die eine technische Grundlage für das asynchrone Laden unserer online optimierten Seiten bietet.
<Route path="/v4/appeal/fillname" component={FillName} /> {* 这里对某些组件做异步加载 *} <Route path="/v4/appeal/selectuser" getComponent={selectUser()} />function selectUser() { return (location, cb) => { require(['../accountselect/container/AccountSelect'], function (component) { cb(null, component); }); }; }
Zusätzlich zum Front-End-Code für die Routing-Steuerung durch React-Router muss der Server möglicherweise auch einige Konfigurationen vornehmen. Andernfalls wird unsere Seite beim Zurücksetzen Probleme haben (die Seite kann die Route nicht finden). Tatsächlich dient es der Steuerung des Routings in dem, was wir normalerweise als Aktion bezeichnen. Da ich Nodejs verwende, ist meine Konfiguration wie folgt.
router.get('/fillname', router.action('index')); router.get('/selectuser', router.action('index'));
Events
Aufgrund von Open-Source-Protokollproblemen habe ich Preact kurzzeitig für Front-End-Events verwendet. Der größte Unterschied zwischen React und Preact besteht in der Kapselung einiger Ereignisse. Dadurch ist Preact viel kleiner als React.
Bei der mobilen Entwicklung ist das Problem der click
Ereignisverzögerung 300 ms ein Problem, mit dem das Frontend häufig konfrontiert ist. Dieses Problem tritt auch bei dem in React bereitgestellten onClick
-Ereignis auf. Wenn wir möchten, dass Feedback sofort nach dem Klicken auf eine Schaltfläche an anderen Stellen angezeigt wird, verwenden Sie am besten das Ereignis onTouchEnd
oder das Open-Source-Npm-Paket react-fastclick
, um das Ereignis click
300ms
Verzögerungsproblem. Die von
-Ereignisses von React standardmäßig ändert onClick
import initReactFastclick from 'react-fastclick'; initReactFastclick();Das Design der Komponente Ein Problem bei der Verwendung von React besteht möglicherweise darin, ob meine Komponente zustandslos oder zustandsbehaftet sein soll. So teile ich meinen Komponentenstatus. Wann sollte ich Redux zum Verwalten des Komponentenstatus verwenden? Solche Fragen könnten Sie haben, wenn Sie zum ersten Mal mit React in Kontakt kommen. Ein extremerer Ansatz besteht darin, Redux zu verwenden, um alle Zustände von Komponenten zu verwalten, unabhängig davon, ob der Zustand geteilt werden muss oder nicht. Dieser Ansatz bedeutet, dass wir viele Aktionen schreiben müssen. Wenn es ein oder zwei Seiten sind, ist es in Ordnung, wenn es mehr als ein Dutzend Seiten sind, können tatsächliche Schreibaktionen zum Absturz führen.
Was sind also die Best Practices? Schauen Sie sich das Bild unten an
verwaltet ermittelt werden). this.state
React Reference Manual der PHP Chinese-Website, um mehr zu erfahren)
Als einfaches Beispiel wird die Popup-Komponente verwendet das gesamte Projekt:
class AlertForm extends Component { constructor(props) { super(props); this.state = { showlayout: false, // false 以tip的方式提示错误, true以弹层的方式提示错误 btnlist: false, formbtn: false }; } componentWillReceiveProps(nextProps) { } handleHideLayout = () => { } handleMobile = () => { } handleChangeCheck = () => { history.go(-1); } render() { return ( <p className="component-alertform" style={this. state.showlayout ? {display: 'block'} : {display: 'none'}}> </p> ); } } export default AlertForm;Wir abstrahieren diese Komponente, die auf anderen Seiten verwendet werden kann, separat und verwenden sie bei Bedarf
. import
import AlertForm from '../../components/AlertForm';<AlertForm errno={errno} stateObj={fillAppealName} actions={actions}/>Paketoptimierung der Entwicklungsumgebung und Produktionsumgebung
Eine der Aufgaben, die nach Abschluss des Projekts erledigt werden müssen, ist die Optimierung, bevor ich online gehe lautet wie folgt:
Unsere Verpackungskonfigurationsdateien lauten wie folgt:
Was ich hier sagen möchte, ist, dass die persönlichen Qualitätsanforderungen für Front-End-Ingenieure relativ hoch sein werden, wenn Sie Nodejs und serverseitiges Rendering verwenden, da sie sich mit vielen serverseitigen Problemen befassen müssen. Ich habe zuvor auch einen Artikel über den Umgang mit Sicherheitsarbeitsaufträgen geteilt. Wir müssen uns nicht nur mit serverseitigen Problemen auseinandersetzen, sondern auch mit Problemen im Zusammenhang mit der Internetsicherheit.
Weitere Funktionen hinzugefügt
Verwenden Sie Nodejs zusätzlich zum serverseitigen Rendering. Ich erledige auch andere Arbeiten mit Nodejs.
Zum Beispiel verwende ich Nodejs, um eine solche JSON-Datei serverseitig zu verwalten. Die PHP-Seite verwaltet keine Fehlercodes und keine Kopie der Fehlercodeanzeige mehr. Für eine einheitliche Verwaltung muss das gesamte Front-End-Display-Copywriting auf der Nodejs-Seite platziert werden. Darüber hinaus kann ich diese Fehler beim Copywriting auch offline dynamisch über das System aktualisieren. Verbessern Sie die Systemverfügbarkeit.
Dieser Artikel endet hier (wenn Sie mehr sehen möchten, gehen Sie zur Spalte React User Manual auf der chinesischen PHP-Website, um mehr zu erfahren). Sie können unten eine Nachricht hinterlassen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine App mit React? Einzelheiten zu den Schritten zum Erstellen umfangreicher Anwendungen mit React+Redux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

JavaScript wird in Browsern und Node.js -Umgebungen ausgeführt und stützt sich auf die JavaScript -Engine, um Code zu analysieren und auszuführen. 1) abstrakter Syntaxbaum (AST) in der Parsenstufe erzeugen; 2) AST in die Kompilierungsphase in Bytecode oder Maschinencode umwandeln; 3) Führen Sie den kompilierten Code in der Ausführungsstufe aus.

Zu den zukünftigen Trends von Python und JavaScript gehören: 1. Python wird seine Position in den Bereichen wissenschaftlicher Computer und KI konsolidieren. JavaScript wird die Entwicklung der Web-Technologie fördern. Beide werden die Anwendungsszenarien in ihren jeweiligen Bereichen weiter erweitern und mehr Durchbrüche in der Leistung erzielen.

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.

Ja, der Motorkern von JavaScript ist in C. 1) Die C -Sprache bietet eine effiziente Leistung und die zugrunde liegende Steuerung, die für die Entwicklung der JavaScript -Engine geeignet ist. 2) Die V8-Engine als Beispiel wird sein Kern in C geschrieben, wobei die Effizienz und objektorientierte Eigenschaften von C kombiniert werden.

JavaScript ist das Herzstück moderner Websites, da es die Interaktivität und Dynamik von Webseiten verbessert. 1) Es ermöglicht die Änderung von Inhalten, ohne die Seite zu aktualisieren, 2) Webseiten durch DOMAPI zu manipulieren, 3) Komplexe interaktive Effekte wie Animation und Drag & Drop, 4) die Leistung und Best Practices optimieren, um die Benutzererfahrung zu verbessern.

C und JavaScript erreichen die Interoperabilität durch WebAssembly. 1) C -Code wird in das WebAssembly -Modul zusammengestellt und in die JavaScript -Umgebung eingeführt, um die Rechenleistung zu verbessern. 2) In der Spieleentwicklung kümmert sich C über Physik -Engines und Grafikwiedergabe, und JavaScript ist für die Spiellogik und die Benutzeroberfläche verantwortlich.

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.

Python eignet sich besser für Datenwissenschaft und Automatisierung, während JavaScript besser für die Entwicklung von Front-End- und Vollstapel geeignet ist. 1. Python funktioniert in Datenwissenschaft und maschinellem Lernen gut und unter Verwendung von Bibliotheken wie Numpy und Pandas für die Datenverarbeitung und -modellierung. 2. Python ist prägnant und effizient in der Automatisierung und Skripten. 3. JavaScript ist in der Front-End-Entwicklung unverzichtbar und wird verwendet, um dynamische Webseiten und einseitige Anwendungen zu erstellen. 4. JavaScript spielt eine Rolle bei der Back-End-Entwicklung durch Node.js und unterstützt die Entwicklung der Vollstapel.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft
