Häufige Probleme bei der Implementierung der Fortschrittsbalkenfunktion von vue Nprogress

Häufige Probleme bei der Implementierung der Fortschrittsbalkenfunktion von vue Nprogress

NProgress ist der Fortschrittsbalken, der oben im Browser angezeigt wird, wenn die Seite springt. Offizielle Website: http://ricostacruz.com/nprogress/
github: https://github.com/rstacruz/nprogress

Der obere Fortschrittsbalken im Bild unten ist sehr verbreitet und im vue -Projekt gibt es ein entsprechendes Plug-In. Nprogress

Bildbeschreibung hier einfügen

Die Verwendung des Nprogress Fortschrittsbalkens ist wie folgt:

1. Installieren Sie das nprogress -Plugin

npm install --save nprogress
Beachten Sie, dass --save hier gleichbedeutend mit -s ist, wodurch der Name und die Versionsnummer des Plug-Ins in dependencies in der Datei package.json gespeichert werden, sodass andere, wenn sie das Projekt klonen, alle Plug-Ins über npm install in node_modules herunterladen können.

2. Verwendung des nprogress -Plugins

Der Fortschrittsbalken wird hier hauptsächlich im Sprungprozess der Seitenweiterleitung verwendet und kann daher direkt in router/index.js verwendet werden:

Starten Sie vor den Routensprüngen das Laden des Fortschrittsbalkens und beenden Sie das Laden des Fortschrittsbalkens nach den Routensprüngen.

Der Inhalt der Datei router/index.js ist wie folgt:

importiere Vue von „vue“;
importiere VueRouter von „vue-router“;
Store aus „@/store“ importieren;
HomeLayout-Formular "@/views/home/layout" importieren;
importiere NProgress von „nprogress“;
importiere userCenter aus "./modules/userCenter";
importiere „nprogress/nprogress.css“
Vue.use(VueRouter);
NProgress.inc(0,2);
NProgress.configure({easing:'ease',Geschwindigkeit:2000,showSpinner:false,trickle:false})
const Routen = [{
	Weg:"/",
	Name:"Index",
	Umleitung:"/index"
},{
	Pfad:"/index",
	Name:'Index',
	Komponente:()=>importieren ('@/views/home/index.vue'),
	meta:{title:'Homepage'}
},{
	Pfad: „/home“,
	Name:'Home',
	Komponente:()=>import('@/views/home/main'),
	meta:{title:'Homepage'}
},{
	Pfad: '/login',
	Name:'Anmelden',
	Komponente:()=>importieren ('@/views/login'),
	meta:{title:'Anmelden'}
},{
	Pfad: '/register',
	Name: 'Registrieren',
	Komponente:()=>importieren('@/views/register'),
	meta:{title:'Registrieren'}
},{
	Pfad: '/404',
	Name:'404',
	Komponente:()=>import('@/views/errorPage')
},{
	Weg:'*',
	Weiterleitung: '/404'
}]
const router = neuer VueRouter({
	Modus: „Verlauf“,
	Routen
})
//Abfangen vor dem Routing router.beforeEach((to,from,next)=>{
	//Bevor die Seite springt, starten Sie den Fortschrittsbalken NProgress.start();
	//Einige Abfangvorgänge, Anmeldeberechtigungen usw.
	const token = window.localStorage.getItem('token'); //Cache vom lokalen Speicher abrufen if(to.meta.title){
		document.title = to.meta.title; //Ändere den Titel der Browser-Registerkarte in den Titel der Seite
	}
	store.commit('aktuelleSeiteändern',to.path);
	const reg = /[a-zA-Z]+\/$/;
	//Direkte Weiterleitung zu Routen, die keine Verifizierung erfordern if(!to.meta.requireAuth){
		wenn (reg.test(zu.Pfad)){
			weiter(zu.Pfad.ersetzen(reg,''));
			zurückkehren;
		}
		nächste();
		zurückkehren
	}
	wenn(token&&to.name!=='Index'){
		// Bereits angemeldet und die Seite, auf die umgeleitet werden soll, ist nicht die Anmeldeseite if(reg.test(to.path)){
			weiter(zu.Pfad.ersetzen(reg,''));
			zurückkehren;
		}
		next();//Sie können direkt springen }else if(token && to.name == 'Index'){
		//Die Seite, zu der Sie angemeldet sind und springen möchten, ist die Anmeldeseite if(reg.test(to.path)){
			weiter(zu.Pfad.ersetzen(reg,''));
			zurückkehren
		}
		next('/home');//direkt zur Homepage springen }else if(!token && to.name !='Index'){
		//Nicht angemeldet und die anzuspringende Seite ist nicht die Anmeldeseite next('/index');//Zur Anmeldeseite springen }else{
		wenn (reg.test(zu.Pfad)){
			weiter(zu.Pfad.ersetzen(reg,''));
			zurückkehren;
		}
		nächste()
	}
})
router.afterEach(to=>{
	NProgress.done();
	Fenster.scrollTo(0,0);
})
//Wiederholte Klicks auf das aktuelle Seitenmenü verarbeiten, Warnprobleme const originalPush = VueRouter.prototype.push;
VueRouter.prototype.push = Funktion push(Standort){
	gebe originalPush.call(diesen,Standort).catch(err=>err);
}
Standardrouter exportieren;

Die wichtigsten Punkte oben sind wie folgt:

Einführung von Plug-Ins und entsprechendem css

Bildbeschreibung hier einfügen

nprogress -Konfigurationsparameter

Bildbeschreibung hier einfügen

3. Wenn router.beforeEach vor dem Routensprung abfängt, wird der Ladefortschrittsbalken

Bildbeschreibung hier einfügen

4. Schließen Sie den Fortschrittsbalken, nachdem router.afterEach jeden Routensprung beendet ist

Bildbeschreibung hier einfügen

3. nprogress -Plugin zum Ändern des Stils

Fügen Sie im style der Datei App.vue den folgenden Code hinzu, um die Farbe des Fortschrittsbalkens zu ändern

#nprogress .bar {
  Hintergrund: #f90 !wichtig; //benutzerdefinierte Farbe}

Dies ist das Ende dieses Artikels über die Implementierung der Vue Nprogress-Fortschrittsbalkenfunktion. Weitere verwandte Inhalte zum Vue Nprogress-Fortschrittsbalken finden Sie in den vorherigen Artikeln von 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:
  • Methode zum Implementieren des nprogress-Fortschrittsbalkens zum Laden von Seiten in Vue
  • Vue verwendet nprogress, um den Routing-Fortschrittsbalken zu laden
  • Vue verwendet nprogress, um Fortschrittsbalken zu implementieren
  • Vue konfiguriert nprogress, um den Fortschrittsbalken oben auf der Seite zu implementieren
  • So verwenden Sie den NProgress-Fortschrittsbalken in Vue
  • So verwenden Sie den Fortschrittsbalken von Nprogress.js im Vue-Projekt

<<:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.17

>>:  Grafisches Installationstutorial für MySQL 8.0.17

Artikel empfehlen

Implementierung des Docker View Container Log-Befehls

Warum sollten wir das Protokoll lesen? Wenn beisp...

So implementieren Sie geplante MySQL-Aufgaben unter Linux

Annahme: Die gespeicherte Prozedur wird täglich v...

So erstellen Sie ein einfaches Säulendiagramm mit Flex-Layout in CSS

Das Folgende ist ein Balkendiagramm im Flex-Layou...

CSS zum Erzielen eines dynamischen Schaltflächeneffekts mit Partikeln

Ursprünglicher Link https://github.com/XboxYan/no...

Installationsprozess der React Native-Umgebung

React-Native-Installationsprozess 1.npx react-nat...

Detaillierte Erklärung der grundlegenden Interaktion von Javascript

Inhaltsverzeichnis 1. So erhalten Sie Elemente Ho...

Eine kurze Diskussion darüber, wie man JS Schritt für Schritt lernt

Inhaltsverzeichnis Überblick 1. Verstehen Sie die...

So implementieren Sie einen einfachen HTML-Videoplayer

Dieser Artikel stellt die Methode zur Implementie...

So legen Sie die Tabellenbreite in IE8 und Chrome fest

Wenn die oben genannten Einstellungen in IE8 und C...

Detaillierte Erläuterung des Zahlungsfunktionscodes des Vue-Projekts

1. Alipay-Methode: Alipay-Methode: Klicken Sie zu...