Ein Artikel zeigt Ihnen, wie Sie mit React ein Rezeptsystem implementieren

Ein Artikel zeigt Ihnen, wie Sie mit React ein Rezeptsystem implementieren

1. Rezeptsammlung

1.1 Projekthintergrund

Das Konzept, zu Hause gesunde Mahlzeiten zu sich zu nehmen, erfreut sich zunehmender Beliebtheit. Der Umfrage zufolge essen über 90 % der städtischen Angestellten und jungen Leute, insbesondere Familien mit Kindern, lieber zu Hause, weil sie im Allgemeinen glauben, dass sie sich beim Essen zu Hause wohler fühlen. Mit der rasanten Entwicklung der Wirtschaft verbessert sich der Lebensstandard der Menschen allmählich und die Anforderungen an die Lebensmittelqualität werden immer höher. Büroangestellte hingegen essen aufgrund des hektischen Lebens in der Stadt weniger zielstrebig und wählen das Essen, mit dem sie ihren Magen füllen, normalerweise einfach nach dem Zufallsprinzip aus. Diese Food-Website propagiert einen neuen und gesunden Lebensstil. Anhand der auf der Website bereitgestellten Rezepte können Benutzer die Stile, Methoden und Kombinationen verschiedener Küchen kennenlernen. Sie können sich nicht nur verschiedene Rezepte ansehen und lernen, wie man kocht, sondern auch online mit anderen Benutzern kommunizieren und Kocherfahrungen austauschen und die Schönheit des Lebens durch Essen spüren.

1.2 Technologie-Stack

Zur Umsetzung dieses Projektes wird das React-Framework verwendet. Die eingesetzten Technologien sind folgende:

nodejs simuliert Schnittstellendaten (Proxy)

react react-dom

react-router-dom

redux react-redux redux-thunk immutable redux-immutable

styled-components ( css作用域) / sass / less / stylus

antd-mobile ui Komponentenbibliothek (mobiles Endgerät)

react-transition-group

axios

http-proxy-middleware

Konfigurationsdekorator ( costomize-cra react-app-rewired ) und so weiter

1.3 Entwicklungsumgebung

Entwicklungsumgebung: Windows-

Entwicklungstools: VSCode / webstorm + jsx -Plugin

Entwicklungs- und Debugging-Tools: Chrome -Browser react-devtools,redux-devtools

Entwicklungs- und Betriebsumgebung: node

Codeverwaltung: git

Online-Umgebung: linux + nginx

1.4. Anzeige der Projekteffekte

1.5. Projektinitialisierung

  • Erstellen Sie ein React-Projekt an einem bestimmten Ort auf Ihrer lokalen Festplatte. Der Befehl lautet wie folgt

npx create-react-app-Kochbuch

  • Nachdem Sie das Projekt erstellt haben, gehen Sie in das Projektverzeichnis und installieren Sie die normalerweise verwendeten Pakete von Drittanbietern. Der Befehl lautet wie folgt

npm i -D anpassen-cra react-app-rewired http-proxy-middleware

npm i -S Redux React-Redux Redux-Thunk Stilkomponenten unveränderlich Redux-unveränderlich React-Router-Dom React-Übergangsgruppe Axios

  • Bereinigen Sie unnötige Dateien und Ordner im erstellten Projekt

1. Löschen Sie einige Inhalte im öffentlichen Verzeichnis

2. Löschen Sie einige Inhalte im src-Verzeichnis

  • Ändern Sie public/index.html
  • Erstellen Sie die Root-Komponente App.jsx und die Projekteinstiegsdatei index.js im src-Verzeichnis
  • Konfigurieren der Dekorator-Unterstützung

// Diese Datei dient zur inkrementellen Konfiguration von Webpack. Es ist CommonJS, das in NodeJS ausgeführt wird
const { lösen } = erfordern ('Pfad')
// In diesem Projekt schrittweise Operationsklassen für die Webpack-Konfiguration ändern und hinzufügen const { addDecoratorsLegacy, override } = require('customize-cra')
// Webpack-Konfiguration anpassen const customize = () => config => {
  // Fügen Sie dem aktuellen Projekt eine @-Zeichenfolge hinzu, um den Importpfad beim Schreiben von Code zu erleichtern config.resolve.alias['@'] = resolve('src')
  Konfiguration zurückgeben
}
// Modul exportieren.exports = override(
  // Dekorator-Unterstützung hinzufügen addDecoratorsLegacy(),
  // Benutzerdefinierte Webpack-Konfiguration hinzufügen customize()
) 

  • Ändern Sie den Skriptbefehl in package.json wie folgt

  "Skripte": {
    "Start": "BROWSER=NONE festlegen und react-app-rewired starten",
    "Build": "React-App-Rewired-Build",
    "Test": "React-Scripts-Test",
    "auswerfen": "React-Scripts auswerfen"
  }
  • Konfigurieren eines Reverse-Proxys

// Das Skripttool create-react-app stellt eine Datei speziell für die Proxy-Konfiguration bereit, die für die Ausführung von nodejs gedacht ist // Die Modularisierung verwendet commonjs-Spezifikationen // Das Skripttool create-react-app stellt nur diesen Eintrag bereit, aber der Proxy-Vorgang wird nicht für Sie abgeschlossen // Sie müssen ein Drittanbieterpaket manuell installieren, um den Proxy zu implementieren // npm i -D http-proxy-middleware
// Denken Sie nach der Änderung dieser Datei daran, => den Dienst neu zu starten const { createProxyMiddleware: proxy } = require('http-proxy-middleware');
// App-Objekt ist das Express-Objekt module.exports = app => {
  app.verwenden(
    '/API',
    Proxy({
        Ziel: „https://api.iynn.cn/film“,
        changeOrigin:true,
  }))
}
 

Das Projekt wurde auf diesem Computer initialisiert und Sie müssen ein Git-Repository im Remote-Repository erstellen. Initialisieren Sie ein Git-Repository für das Projekt auf diesem Computer

Nach dem Senden an die Remote-Maschine beginnen Sie mit der Verwendung von Zweigen auf Ihrem lokalen Computer. Entwickeln Sie nicht im Master. Denken Sie daran

2. Entwicklung der Homepage

2.1, antd-mobile-Komponentenbibliothek

Online-Dokumentation: Ant Design Mobile | Eine Mobile-Design-Spezifikation

antd-mobile ist eine React-Implementierung der Mobilspezifikation von Ant Design und dient dem Mobilfunkgeschäft von Ant Financial und Koubei. Es unterstützt mehrere Plattformen, verfügt über umfangreiche Komponenten, kann verschiedene Szenarien vollständig abdecken, hat einen hochgradig konfigurierbaren UI-Stil, ist erweiterbarer und kann problemlos an verschiedene Produktstile angepasst werden.

  • Sie müssen das Paket installieren, bevor Sie es verwenden können

npm i -S antd-mobile

  • Ein Babel-Plugin , das Komponentencode und Stile bei Bedarf lädt

// Tree-Shaking bei Bedarf laden

npm i -D babel-plugin-import

// config-overrides.js wird verwendet, um die Standardkonfiguration zu ändern const { override, fixBabelImports } = require('customize-cra')
modul.exporte = überschreiben(
   fixBabelImports('importieren', {
     Bibliotheksname: "antd-mobile",
     Stil: "css",
   })
)
  • verwenden
importiere React, {Komponente} von „react“;
// Importieren Sie die Schaltflächenkomponente von „antd-mobile“. import { Button } von „antd-mobile“;
Klasse App erweitert Komponente {
    rendern() {
        zurückkehren (
            <>
                <Button type="primary">Ich bin ein normaler Button</Button>
            </>
        );
    }
}
Standard-App exportieren;
  • Stil zurücksetzen

Es gibt zwei Arten von Stilen auf mobilen Websites: rem / vw und vh

2.2. Implementierung der unteren Navigation

Referenzadresse: https://mobile.ant.design/components/tab-bar-cn/

Die untere Navigation kann die Tab-Bar-Komponente in Antd-Mobile verwenden, um diese funktionale Anzeige zu vervollständigen.

Routenplanung

2.3. Top-Navigation der Rezepte

Höhe: .4rem;
Zeilenhöhe: .4rem;
Hintergrund: #FF6C0C;
Schriftgröße: .18rem;
Textausrichtung: zentriert;
Farbe: #fff;

2.4. Karussell-Anzeige

Referenz: Ant Design Mobile | Eine mobile Design-Spezifikation

Diese Funktion kann die Karussellkomponente in antd-mobile verwenden

2.5. Scheindaten

Mock-Data (Faker-Data) bedeutet, dass mit gefälschten Daten Hintergrunddaten simuliert werden.

Warum gefälschte Daten erstellen? Da das Backend Schnittstellen entwickelt und Schnittstellendokumente langsam erstellt , müssen wir die Anforderungsdaten selbst simulieren. Die simulierten Datenfelder, Formate usw. erfordern die Kommunikation mit Backend-Ingenieuren. Auf diese Weise können wir die Front-End-Arbeitsaufgaben weiterhin durch simulierte Daten erledigen. Nachdem die Back-End-Ingenieure die Datenschnittstelle geschrieben und die Schnittstelleninformationen bereitgestellt haben, müssen wir nur noch die Anforderungsadresse ändern, und das Front-End und das Back-End werden nahtlos verbunden.

  • Installieren Sie den JSON-Server, damit wir schnell einen Webdienst starten können

npm i -g json-server === yarn fügt globalen JSON-Server hinzu
//json-server Standard-Routing-Modus // unterstützt get / post / put / delete und unterstützt auch das Schreiben von Dateien. Es ist domänenübergreifend // data.json
// http-Anforderungsadresse http://xxx/data
{
  "Daten": {
    "Ich würde": 1,
    "Name": "aaa",
    "Alter": 20
  }
}
JSON-Server-Daten.json
  • Scheindaten

2.6. Suchkomponente

exportiere const SearchBox = styled.div`
  Breite: 90vw;
  Höhe: .46rem;
  Anzeige: Flex;
  Rand: 1px durchgezogen #ff6c0c;
  Rand: .15rem automatisch;
  Rahmenradius: 5px;
  Kastenschatten: 1px 1px 5px #ccc;
  Inhalt ausrichten: zentriert;
  Elemente ausrichten: zentrieren;
  img{
    Breite: .2rem;
    Höhe: .2rem;
  }
  Spanne{
    Farbe: Nr. 555;
    Rand links: .1rem;
  }
`

2.7. Beliebte Kategorien

exportiere const HotCateBox = styled.div`
  Hintergrund: #fff;
  .Titel{
    Polsterung: .15rem;
    Farbe: #949494;
  }
`
<Rasterdaten={hotcate}
              Spaltennummer={3}
              Artikelstil = {{ Höhe: '.5rem' }}
              beiKlick={(Zeile, Index) => {
                Konsole.log(Index, diese.Eigenschaften.History.Push)
              }}
              renderItem={dataItem => (
                <div>{dataItem.title}</div>
              )}
            />

2.8. Feines Essen

Statische Layoutanzeige

  • HTML
<div>
	<h1>Ausgezeichnetes Essen</h1>
	<div>
		<dl>
			<dt>
				<img src="http://www.mobiletrain.org/images/index/new_logo.png" />
			</dt>
			<dd>
				<h3>Getrockneter Tofu mit grünem Pfeffer</h3>
				<p>1000 Aufrufe, 2000 Favoriten</p>
			</dd>
		</dl>
	</div>
</div>
  • CSS
div {
	Polsterung links: .1rem;
	>h1 {
		Höhe: .5rem;
		Zeilenhöhe: .6rem;
		Polsterung links: .15rem;
		Farbe: #666;
		Polsterung links: 0;
	}
	>div {
		Anzeige: Flex;
		Flex-Wrap: Umwickeln;
		>dl {
			Breite: berechnet (50 % – 0,1 rem);
			Hintergrund: #fff;
			Rand rechts: .1rem;
			Rand unten: .1rem;
			dt {
				img {
					Breite: 100 %;
				}
			}
			dd {
				Anzeige: Flex;
				Flex-Richtung: Spalte;
				Elemente ausrichten: zentrieren;
				Polsterung: .1rem;
				h3 {
					Schriftgröße: .16rem;
				}
				P {
					Schriftgröße: .12rem;
					Farbe: #666;
				}
			}
		}
	}

3. Klassifizierungsentwicklung

3.1. Kategorie-Top-Schalter

Erstellen Sie die erforderlichen Komponenten und Stile

  • HTML
<ul>
	<li>Kategorie</li>
	<li className="active">Zutaten</li>
	<li className="Schieberegler rechts"></li>
</ul>
  • CSS
Höhe: .44rem;
Hintergrund: #ee742f;
Anzeige: Flex;
Elemente ausrichten: zentrieren;
Inhalt ausrichten: zentriert;
ul {
	Breite: 1,4rem;
	Höhe: .3rem;
	Anzeige: Flex;
	Position: relativ;
	Rand: 1px durchgezogen #fff;
	Z-Index: 0;
	Randradius: .15rem;
	li {
		biegen: 1;
		Zeilenhöhe: .3rem;
		Textausrichtung: zentriert;
		Farbe: #fff;
		&:letztes-Kind {
			Position: absolut;
			Breite: 50%;
			Höhe: .3rem;
			Hintergrund: #fff;
			z-Index: -1;
			Randradius: .15rem;
			transformieren: übersetzen(0, 0);
			Übergang: alle 0,4 s Einschwingzeit;
			&.Rechts {
				transformieren: übersetzen(100 %, 0);
			}
		}
		&.aktiv {
			Farbe: #ee742f;
		}
	}

3.2 Listenanzeige

  • HTML
<div>
	<div>
		<ul>
			<li class="active"><span>Kategorie</span></li>
		</ul>
	</div>
	<div>
		<ul>
			<li>Inhalt</li>
		</ul>
	</div>
</div>
  • CSS
.div {
	Höhe: 100%;
	Anzeige: Flex;
	>div:erstes-Kind {
		Breite: .9rem;
		>ul {
			Höhe: 100%;
			Überlauf-y: scrollen;
			li {
				Höhe: .5rem;
				Textausrichtung: zentriert;
				Zeilenhöhe: .5rem;
				Hintergrund: #f3f3f3;
				&.aktiv {
					Hintergrund: #fff;
					Spanne {
						Anzeige: Inline-Block;
						Höhe: 100%;
						Rahmen unten: 1px durchgezogen #ee742f;
					}
				}
			}
		}
	}
	>div:letztes-Kind {
		biegen: 1;
		Hintergrund: #fff;
		Polsterung: .2rem .1rem;
		>ul {
			Anzeige: Flex;
			Flex-Wrap: Umwickeln;
			Überlauf-y: scrollen;
			Höhe: 100%;
			Inhalt ausrichten: Flex-Start;
			li {
				Breite: 33,3333 %;
				Textausrichtung: zentriert;
				Höhe: .5rem;
				Zeilenhöhe: .5rem;
				Farbe: #666;
			}
		}
	}

Zusammenfassen

Dieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalten auf 123WORDPRESS.COM mehr Aufmerksamkeit schenken können!

Das könnte Sie auch interessieren:
  • Beispielcode eines durch React- und Antd-Komponenten implementierten Managementsystems
  • Detaillierte Erklärung zur Verwendung von React zum Erstellen eines Backend-Verwaltungssystems
  • Ein kurzer Vortrag über das Routing-System in React
  • Erstellen reaktiver Systeme mit JavaFX-Tools

<<:  Detaillierte Erklärung zum Erstellen geplanter MySql-Aufgaben in Navicat

>>:  Detailliertes Tutorial zum verteilten Betrieb von JMeter in der Docker-Umgebung

Artikel empfehlen

Detaillierte Erklärung des Prinzips zum Erstellen von Tomcat in Eclipse

Beim Erstellen eines Tomcat-Servers auf einem lok...

js implementiert dynamisch Operationen zum Hinzufügen und Löschen von Tabellen

In diesem Artikelbeispiel wird der spezifische Co...

SQL-Implementierung LeetCode (176. Zweithöchstes Gehalt)

[LeetCode] 176. Zweithöchstes Gehalt Schreiben Si...

Eine kurze Diskussion über die Typen von node.js-Middleware

Inhaltsverzeichnis Überblick 1. Middleware auf An...

So implementieren Sie einen Kennwortstärke-Detektor in React

Inhaltsverzeichnis Vorwort verwenden Komponentens...

Lernen Sie schnell die MySQL-Grundlagen

Inhaltsverzeichnis SQL verstehen SELECT verstehen...

Zusammenfassung der englischen Namen chinesischer Schriftarten

Wenn Sie in CSS die Eigenschaft „font-family“ ver...

Tutorial zur Installation von Ceph Distributed Storage mit Yum unter Centos7

Inhaltsverzeichnis Vorwort Konfigurieren Sie die ...

React-Internationalisierung – Verwendung von react-intl

Wie erreicht man Internationalisierung in React? ...

Implementierung der MySQL GRANT-Benutzerautorisierung

Bei der Autorisierung geht es darum, einem Benutz...

Zwei Beispiele für die Verwendung von Symbolen in Vue3

Inhaltsverzeichnis 1. Verwenden Sie SVG 2. Verwen...