So erstellen Sie ein React-Projekt mit Vite

So erstellen Sie ein React-Projekt mit Vite

Vorwort

Tägliche Tauben, Feuerzange Liu Ming

Dies ist ein auf Vite basierendes React-Projekt und die Entwicklungserfahrung ist großartig.

Erstellen Sie ein Vite-Projekt

Garn erstellen @vitejs/app 

Wie oben gezeigt, ist die voreingestellte Vorlage react-ts ausgewählt. Wenn ein Projekt wie das folgende erscheint

yarn //Abhängigkeiten installieren yarn dev //Entwicklungsumgebung starten 

Öffnen Sie den Browser und geben Sie http://localhost:3000/#/ ein, wie in der Abbildung oben gezeigt. Dann herzlichen Glückwunsch, Sie können React-Projekte normal entwickeln. Beenden von Sprinkle Flowers

Wenn das nicht funktioniert, gehen Sie auf die offizielle Website von Vite. Dort finden Sie ausführlichere Informationen als das, was ich geschrieben habe.

Renovierungsprojekt

Das Obige ist jedoch nur eine grundlegende React-Demo. In tatsächlichen Entwicklungsprojekten reicht dies bei weitem nicht aus und erfordert einige zusätzliche Projektkonfigurationen.

Verzeichniskonventionen

Entsprechend den täglichen Entwicklungsgewohnheiten erstellen Sie zunächst grundlegende Verzeichniskonventionen

├── dist/ // Standardverzeichnis für Build-Ausgabe └── src/ // Quellcodeverzeichnis ├── asset/ // Verzeichnis für statische Ressourcen ├── config      
  ├── config.js // Grundlegende Konfiguration im Zusammenhang mit dem internen Geschäft des Projekts ├── components/ // Öffentliches Komponentenverzeichnis ├── service/ // Verwaltung von Geschäftsanforderungen ├── store/ // Gemeinsam genutztes Verzeichnis für die Store-Verwaltung ├── till/ // Verzeichnis der Tool-Funktionen ├── pages/ // Seitenverzeichnis ├── router/ // Verzeichnis der Routing-Konfiguration ├── .main.tsx // Haupteintrag der Vite-Abhängigkeit ├── .env // Konfiguration der Umgebungsvariablen ├── vite.config.ts // Auswahl der Vite-Konfiguration, weitere Informationen finden Sie auf der offiziellen Website-API
└── Paket.json

Konfigurieren von Routen

Ändern Sie main.tsx

React von „react“ importieren
ReactDOM von „react-dom“ importieren
importiere { HashRouter, Route, Switch } von 'react-router-dom'
importiere routerConfig aus './router/index'
importiere './base.less'

ReactDOM.render(
 <Reagieren.StrictMode>
 <HashRouter>
  <Schalter>
  {
   routerConfig.routes.map((route) => {
   zurückkehren (
    <Routenschlüssel={route.pfad} {...route} />
   )
   })
  }
  </Schalter>
 </HashRouter>
 </React.StrictMode>,
 document.getElementById('root')
)

Router/index.ts-Dateikonfiguration

BlogsList aus '@/pages/blogs/index' importieren
Importiere BlogsDetail aus '@/pages/blogs/detail'

Standard exportieren {
 Routen: [
 { exakt: true, Pfad: '/', Komponente: BlogsList },
 { exact: true, Pfad: '/blogs/detail/:article_id', Komponente: BlogsDetail },
 ],
}

Sie können auf die obige Konfiguration verweisen und andere Eigenschaften konfigurieren, z. B. Umleitung, Lazy Loading und andere allgemeine Routing-Konfigurationselemente.

Darüber hinaus ziehe ich es persönlich vor, Routen durch Konfiguration zu generieren, und herkömmliches Routing fühlt sich immer unbequem an.

Dienstverwaltung

Alle Projektanfragen werden in Betrieb genommen. Es wird empfohlen, dass jedes Modul über eine entsprechende Dateiverwaltung verfügt, wie unten gezeigt

importiere * als Information aus './information'
importiere * als Basis von './base'

exportieren {
 Information,
 Base
}

Dies erleichtert das Anforderungsmanagement

base.ts ist eine Business-Request-Klasse, in der Sie einige spezielle Geschäftsprozesse abwickeln können

importiere { Anfrage } von '../until/request'

Konstantenpräfix = "/API"

exportiere const getAllInfoGzip = () => {
 Rückgabeanforderung({
 URL: `${prefix}/apis/random`,
 Methode: 'GET'
 })
}

Als einheitliche Anforderungsmethode kann till/request angepasst und durch Anforderungsbibliotheken wie fetch und axios ersetzt werden. Gleichzeitig kann allgemeine Abfanglogik in dieser Methode gekapselt werden.

importiere qs von „qs“
importiere Axios von „Axios“;

Schnittstelle IRequest {
 URL: Zeichenfolge
 Parameter?: SVGForeignObjectElement
 Abfrage?: Objekt
 Header?: Objekt
 Methode?: "POST" | "OPTIONS" | "GET" | "HEAD" | "PUT" | "DELETE" | undefiniert
}

Schnittstelle IResponse {
 Anzahl: Nummer
 Fehlermeldung: Zeichenfolge
 klassifizieren: Zeichenfolge
 Daten: beliebig
 Detail?: irgendein
 img?: Objekt
}

export const request = ({ url, params, query, header, method = 'POST' }: IRequest): Promise<IResponse> => {
 returniere neues Promise((lösen, ablehnen) => {
  axios(Abfrage ? `${url}/?${qs.stringify(Abfrage)}` : URL, {
   Daten: Parameter,
   Überschriften: Überschrift,
   Methode: Methode,
  })
   .then(res => {
    auflösen(res.data)
   })
   .catch(Fehler => {
    ablehnen(Fehler)
   })
 })
}

Informationen zum spezifischen allgemeinen Abfangen finden Sie in der Axios-Konfiguration, oder schreiben Sie sie selbst neu, um sie Ihren eigenen Geschäftsanforderungen anzupassen.

Es gibt ein Problem mit den hier mit Axios erstellten Ressourcen. Verwenden Sie sie nicht direkt. Bitte beachten Sie die vorherige Anforderungskapselung und ersetzen Sie sie durch Fetch. Wenn Klassenkameraden sie erfolgreich erstellt haben, hinterlassen Sie bitte eine Nachricht = =!

Bei der Entwicklung und Verwendung eines bestimmten Geschäfts können Sie es entsprechend dem Modulnamen importieren, sodass Sie das entsprechende Schnittstellenmodul leicht finden können

importiere { Informationen } von "@/service/index";

const { data } = warte auf Informationen.getAllInfoGzip({ id });

Dieser Regelsatz kann auch auf Orte angewendet werden, an denen Module zerlegt werden können, wie z. B. Store, Router, Dienstprogramme usw., was der Projektwartung förderlich ist.

Oben sind einige Geschäftsentwicklungskonfigurationen und -vereinbarungen für das Projekt aufgeführt. Die Studierenden können sie entsprechend den Bestimmungen und Präferenzen ihres eigenen Teams ändern.

Andere Konfiguration

Hier geht es hauptsächlich um die Konfiguration von vite.config.ts und einige zusätzliche Konfigurationen für das gesamte Projekt.

importiere { defineConfig } von 'vite'
importiere reactRefresh von '@vitejs/plugin-react-refresh'
importiere vitePluginImp von „vite-plugin-imp“

exportiere Standard-DefineConfig({
 Plugins: [
 reagierenRefresh(),
 vitePluginImp({
  Bibliotheksliste: [
  {
   Bibliotheksname: "antd-mobile",
   Stil(Name) {
   gibt `antd-mobile/lib/${name}/style/index.css` zurück
   },
  },
  ]
 })
 ],
 lösen: {
 Erweiterungen: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json'],
 Alias: {
  '@': '/Quelle'
 }
 },
 Server: {
 Proxy: {
  // Option zum Schreiben von '/api': {
  Ziel: 'https://www.xxx.xxx',
  changeOrigin: wahr,
  umschreiben: (Pfad) => Pfad.ersetzen(/^\/api/, '')
  },
 }
 },
 css: {
 postcss: {
  Plugins: [
  require('postcss-pxtorem')({ // Konvertiere px-Einheiten in rem-Einheiten rootValue: 32, // Konvertierungsbasis, der Standardwert ist 100, daher wird die Schriftgröße des Root-Tags auf 1rem=50px gesetzt, damit du aus dem Designentwurf abmessen kannst, wie viele px du haben möchtest und direkt im Code weitere px hinzufügen kannst
   propList: ['*'], //Eigenschaftsselektor, * steht für allgemeine Einheitspräzision: 5, //Die Dezimalzahl, auf die die REM-Einheit anwachsen darf, und die Anzahl der Ziffern, die nach dem Dezimalpunkt beibehalten werden.
   exclude: /(node_module)/, // Standard ist false, Sie können (reg) reguläre Ausdrücke verwenden, um bestimmte Ordner auszuschließen})
  ]
 }
 }
})

Es gibt auch einige grundlegende Inhalte:

  • vitePluginImp soll antd-mobile bei Bedarf laden
  • postcss-pxtorem ist ein Plugin zum Konfigurieren der mobilen Pixelkonvertierung
  • server.proxy konfiguriert den Projektproxy
  • resolve.alias konfiguriert den Alias. Wenn vscode ihn normal erkennen soll, müssen Sie auch ts.config konfigurieren.
{
 "Compileroptionen": {
 "Basis-URL": "./",
 "Pfade": {
  "@/*": [
  "Quelle/*"
  ]
 },
}

Sie können „antd-mobile“ durch „antd“ ersetzen, und Sie können auch „postcss“ nach Ihren Wünschen ersetzen.

Durch die oben erwähnte einfache Transformation kann nun eine normale Kleinprojektentwicklung durchgeführt werden. Fertig und mit Blumen bestreut!

Und ich habe mit dieser Konfiguration ein einfaches H5-Projekt geschrieben und werde die Vorlage im Laufe der Projektiteration schrittweise verbessern.

Dies ist das Ende dieses Artikels über die Schritte zum Erstellen eines React-Projekts mit Vite. Weitere Informationen zum Erstellen eines React-Projekts mit Vite finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • 5 Dinge, die beim Schreiben von React-Komponenten mit Hooks zu beachten sind
  • Implementierungsschritte zum Einrichten der React+Ant Design-Entwicklungsumgebung
  • React-Beispiel zum Abrufen des Werts aus dem Eingabefeld
  • React implementiert den Beispielcode der Radiokomponente
  • So verwenden Sie die Verlaufsumleitung in React Router
  • Lassen Sie uns über mein Verständnis und meine Anwendung von React Context sprechen
  • Einführungstutorial zu React Hooks
  • Detaillierter Prozess zur Erstellung eines VR-Panoramaprojekts mit React und Threejs
  • Einfache Analyse von EffectList in React

<<:  Erläuterung des Arbeitsmechanismus von Namenode und SecondaryNameNode in Hadoop

>>:  Tutorial zur Installation und Konfiguration von MySql5.7 in Alibaba Cloud ECS centos6.8

Artikel empfehlen

So installieren Sie Phabricator mit Docker

Ich verwende hier das Ubuntu 16.04-System. Instal...

Docker-Netzwerkprinzipien und detaillierte Analyse benutzerdefinierter Netzwerke

Docker virtualisiert eine Brücke auf dem Host-Rec...

So ändern Sie Flash-SWF-Dateien in Webseiten

Ich denke, dies ist ein Problem, auf das viele Leu...

4 Möglichkeiten zum Ändern des MySQL-Root-Passworts (Zusammenfassung)

Methode 1: Verwenden Sie den Befehl SET PASSWORD ...

Detaillierte Erklärung zur Verwendung von awk unter Linux

Bevor wir awk lernen, sollten wir sed, grep, tr, ...

Das WeChat-Applet implementiert einen einfachen Rechner

Der einfache Rechner des WeChat-Applets dient Ihn...

jQuery-Plugin zum Implementieren eines schwebenden Menüs

Lernen Sie jeden Tag ein schwebendes jQuery-Plug-...

Vue verbessert die Seitenantwortgeschwindigkeit durch Lazy Loading

Inhaltsverzeichnis Überblick Was ist Lazy Loading...

So erstellen Sie https mit Nginx und dem kostenlosen Tencent Cloud-Zertifikat

Ich habe gelernt, wie man https bekommt. Kürzlich...

So platzieren Sie große Bilder auf kleinem Raum einer Webseite

Originalquelle: www.bamagazine.com Enge Bereiche ...