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 verwenden Sie den Skeleton-Bildschirm im Vue-Projekt

Heutzutage ist die Anwendungsentwicklung grundsät...

Beheben Sie den abnormalen Fehler beim Erstellen einer Vue-Umgebung mit Webpack

Inhaltsverzeichnis Konfigurieren Sie zuerst packa...

So ändern Sie den Hostnamen in Linux dauerhaft

Wenn Sie Ihren Hostnamen ändern möchten, können S...

Die Verwendung und der Unterschied zwischen JavaScript-Pseudo-Array und Array

Pseudo-Arrays und Arrays In JavaScript sind mit A...

MySQL-Speicherung räumlicher Daten und Funktionen

Inhaltsverzeichnis 1. Datentyp 1. Was sind MySQL-...

Zusammenfassung der Wissenspunkte des Datenbankindex

Inhaltsverzeichnis Erster Blick-Index Das Konzept...

Detaillierte Erklärung zur Installation und Verwendung von Vue-Router

Inhaltsverzeichnis Installieren Grundlegende Konf...

Select unterstützt kein Doppelklick-DBClick-Ereignis

XML/HTML-CodeInhalt in die Zwischenablage kopiere...

Detailliertes Beispiel für die Datenmigration bei einem IOS-Datenbank-Upgrade

Detailliertes Beispiel für die Datenmigration bei...