Detaillierte Erläuterung des mobilen Projekts vite2.0 + vue3

Detaillierte Erläuterung des mobilen Projekts vite2.0 + vue3

1. Technische Punkte

  • Vite-Version
  • vue3
  • ts
  • Integriertes Routing
  • Integrieren Sie vuex
  • Integrieren Sie Axios
  • Vant3 konfigurieren
  • Anpassung mobiler Endgeräte
  • Agent anfordern

2. Schritte

vite+ts+vue3 benötigt nur eine Befehlszeile

npm init @vitejs/app meine-vue-app --template vue-ts

Konfigurieren von Routen

npm installiere vue-router@4 --save

Erstellen Sie ein neues Router-Verzeichnis unter src und erstellen Sie eine neue Datei index.ts

importiere { createRouter, createWebHashHistory, RouteRecordRaw } von „vue-router“;
const routes: Array<RouteRecordRaw> = [
 {
 Weg: "/",
 Name: "Home",
 Meta: {
  Titel: "Zuhause",
  keepAlive: wahr
 },
 Komponente: () => import("../views/Home/index.vue"),
 },
 {
 Pfad: "/login",
 Name: "Login",
 Meta: {
  Titel: "Anmelden",
  keepAlive: wahr
 },
 Komponente: () => import("../views/Login/index.vue"),
 },
];
const router = createRouter({
 Verlauf: createWebHashHistory(),
 Routen
});
Standardrouter exportieren;

Mounten Sie die Route in main.ts

importiere { createApp } von 'vue'
App aus „./App.vue“ importieren
Router aus "./router" importieren; createApp(App)
.use(Router)
.mount('#app')

Konfigurieren Sie Data Center Vuex (4.x).

Installieren

npm ich vuex@next --speichern

Konfiguration

Erstellen Sie ein Store-Verzeichnis unter src und erstellen Sie index.ts unter Store

importiere { createStore } von "vuex";
exportiere Standard createStore({
 Zustand: {
 listData:{1:10},
 Zahl: 10
 },
 Mutationen:
 setData(Status,Wert){
  state.listData=Wert
 },
 addNum(Zustand){
  Zustand.Nummer = Zustand.Nummer + 10
 }
 },
 Aktionen: {
 setData(Kontext,Wert){
  Kontext.commit('setData',Wert)
 },
 },
 Module: {}
});

Montieren

Mounten Sie das Rechenzentrum in main.ts

importiere { createApp } von 'vue'
App aus „./App.vue“ importieren
Router aus "./router" importieren;
Store aus "./store" importieren;
createApp(App)
.use(Router)
.use(speichern)
.mount('#app')

Vant3

Installieren

npm ich vant@next -S

Die Vite-Version muss das On-Demand-Laden von Komponenten nicht konfigurieren, da alle Module in Vant 3.0 basierend auf ESM geschrieben sind und natürlich die Möglichkeit haben, bei Bedarf eingeführt zu werden, aber alle Stile müssen eingeführt werden 137,2 KB

Stile global in main.ts importieren

importiere { createApp } von 'vue'
App aus „./App.vue“ importieren
Router aus "./router" importieren;
Store aus "./store" importieren;
importiere 'vant/lib/index.css'; // Globaler Importstil createApp(App)
.use(Router)
.use(speichern)
.use(Ameise)
.mount('#app')

Anpassung mobiler Endgeräte

Installieren Sie postcss-pxtorem

npm installiere postcss-pxtorem -D

Erstellen Sie postcss.config.js im Stammverzeichnis

modul.exporte = {
 "Plugins": {
 "postcss-pxtorem": {
  Wurzelwert: 37,5, 
  // Die offizielle Schriftgröße von Vant beträgt 37,5
  Eigenschaftenliste: ['*'],
  SelektorBlackList: ['.norem'] 
  // Klassen herausfiltern, die mit .norem- beginnen, und keine Rem-Konvertierung durchführen}
 }
}

Erstellen Sie eine neue Datei rem.ts im Verzeichnis util im Stammverzeichnis src.

// rem proportionale Anpassungskonfigurationsdatei // Basisgröße const baseSize = 37.5 
// Beachten Sie, dass dieser Wert mit dem rootValue in der Datei postcss.config.js übereinstimmen muss // Setze die Rem-Funktion function setRem () {
 // Die aktuelle Seitenbreite entspricht dem Breitenskalierungsverhältnis von 375 und kann nach Bedarf geändert werden. Im Allgemeinen ist der Entwurf 750 breit (Sie können die Entwurfszeichnung abrufen und sie nach Belieben ändern).
 const scale = document.documentElement.clientWidth / 375
 // Legen Sie die Schriftgröße des Stammknotens der Seite fest („Math.min (Scale, 2)“ bedeutet, dass das maximale Vergrößerungsverhältnis 2 beträgt und entsprechend den tatsächlichen Geschäftsanforderungen angepasst werden kann.)
 document.documentElement.style.fontSize = Basisgröße * Math.min(Skala, 2) + 'px'
}
// setRem() initialisieren
//Reset rem beim Ändern der Fenstergröße
Fenster.onresize = Funktion () {
 console.log("Ich habe ausgeführt")
 setRem()
}

In main.ts importieren

importiere "./utils/rem"

Konfigurieren Sie die Netzwerkanforderung axios

Installieren

npm i -s axios

Axios konfigurieren

Erstellen Sie einen utils-Ordner in src und erstellen Sie request.ts unter utils

importiere Axios von „Axios“;
const service = axios.create({
 Basis-URL,
 Timeout: 5000 // Anforderungs-Timeout
});
//Interceptor vor dem Einleiten der Anfrage service.interceptors.request.use(
 Konfiguration => {
 // Wenn ein Token vorhanden ist, Carry-Token
 const token = window.localStorage.getItem("accessToken");
 wenn (Token) {
  config.headers.common.Authorization = Token;
 }
 Konfiguration zurückgeben;
 },
 Fehler => Promise.reject(Fehler)
);
// Antwort-Interceptor service.interceptors.response.use(
 Antwort => {
 const res = Antwort.Daten;
 
 wenn (Antwort.Status !== 200) {
  returniere Promise.reject(neuer Fehler(res.message || "Fehler"));
 } anders {
  Rückgabewert;
 }
 },
 Fehler => {
 returniere Promise.reject(Fehler);
 }
);
Standarddienst exportieren;

verwenden

Importiere die Anfrage aus "../utils/request";
Anfrage({URL: "/Profil ",Methode: "get"})
.dann((res)=>{
 Konsole.log(res)
})

Konfigurieren des Anforderungsagenten

vite.config.ts

importiere { defineConfig } von 'vite'
vue aus '@vitejs/plugin-vue' importieren
Pfad von „Pfad“ importieren;
 
// https://vitejs.dev/config/
exportiere Standard-DefineConfig({
 Plugins: [vue()],
 base:"./",//Verpackungspfad auflösen: {
 alias:{
  '@': Pfad.resolve(__dirname, './src') //Alias ​​festlegen}
 },
 Server: {
 port:4000, //Port öffnen: true,
 Proxy: {
  //Option zum Schreiben von '/api': 'http://123.56.85.24:5000'//Proxy-URL},
 Kors: wahr
 }
 
})

Oben ist eine grundlegende Entwicklungskonfiguration für mobile Endgeräte abgeschlossen.

3. Vite ist besonders freundlich zu <script setup> und <style vars>

Normales Schreiben

<script lang="ts">
importiere { defineComponent } von "vue";
importiere { useRouter } von "vue-router";
exportiere StandarddefiniereKomponente({
 aufstellen() {
 const router = useRouter();
 const goLogin = () => {
  router.push("/");
 };
 zurückgeben { goLogin };
 },
});
</Skript>
<script setup>Schreiben <script lang="ts" setup="props">
importiere { useRouter } von "vue-router";
const router = useRouter();
const goLogin = () => {
 router.push("/");
};
</Skript>

Ist es nicht viel einfacher?

Wie verwende ich <style vars>?
<script lang="ts" setup="props">
const state = reaktiv({
 Farbe: "#ccc",
});
</Skript>
<Stil>
.text {
 Farbe: v-bind("Status.Farbe");
}
</Stil>

So einfach ist das!

Code

Ursprüngliche Adresse: zhuanlan.zhihu.com/p/351888882

Online-Vorschau: http://123.56.85.24/vite/#/

Codeadresse: github.com/huoqingzhu/vue3-vite-ts-Vant

Chinesische vitejs-Website: https://cn.vitejs.dev/

Dies ist das Ende dieses Artikels über die praktischen Details der mobilen Projekte vite2.0+vue3. Weitere relevante praktische Inhalte zu vite2.0+vue3-Projekten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vite+Electron zum schnellen Erstellen von VUE3-Desktopanwendungen
  • So fügen Sie Vite-Unterstützung zu alten Vue-Projekten hinzu
  • Implementierung des Vue 3.x-Projekts basierend auf Vite2.x
  • So verwenden Sie vite zum Erstellen einer Vue3-Anwendung
  • Was wir über Vue3 und Vite zu sagen haben

<<:  Implementierung von Platzhaltern und Escape-Zeichen in der Linux-Befehlszeile

>>:  Installieren und Bereitstellen von Java8 und MySQL unter CentOS7

Artikel empfehlen

Eine kurze Diskussion zum Problem des Docker-Run-Containers im erstellten Status

Bei einem aktuellen Problem gibt es folgendes Phä...

Analyse des Prinzips von Vue nextTick

Inhaltsverzeichnis Ereignisschleife miscroTask (M...

So halten Sie eine lange Verbindung aufrecht, wenn Sie den Nginx-Reverse-Proxy verwenden

· 【Szenenbeschreibung】 Nach HTTP1.1 unterstützt d...

Implementierung des HTML-Gleit- und Schwebeball-Menüeffekts

CSS-Stile html,Text{ Breite: 100 %; Höhe: 100%; R...

Gedanken zu copy_{to, from}_user() im Linux-Kernel

Inhaltsverzeichnis 1. Was ist copy_{to,from}_user...

Implementierungsbeispiel eines Nginx+Tomcat-Load-Balancing-Clusters

Inhaltsverzeichnis Einführung 1. Fallübersicht 2....

Analyse des Tutorials zur Implementierung der Remote-Anmeldung unter Linux

Linux wird im Allgemeinen als Server verwendet un...

Detaillierte Erklärung zum effizienten MySQL-Paging

Vorwort Normalerweise wird für MySQL-Abfragen mit...

Detaillierte Erklärung der Funktionsweise der Node.js-Middleware

Inhaltsverzeichnis Was ist Express-Middleware? Vo...

Erläuterung der MySQL-Indexoptimierung

Bei unserer täglichen Arbeit führen wir manchmal ...