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

Installieren Sie Docker unter CentOS 7

Wenn Sie kein Linux-System haben, finden Sie unte...

Tutorial zur Verwendung des Frameset-Tags in HTML

Frameset-Seiten unterscheiden sich etwas von norm...

So lösen Sie das Problem der Groß-/Kleinschreibung bei MySQL-Abfragen

Frage Als ich kürzlich ein praktisches Projekt mi...

Detaillierte Erklärung zum Ein- und Aussteigen aus dem Docker-Container

1 Starten Sie den Docker-Dienst Zuerst müssen Sie...

So fragen Sie ab, ob die MySQL-Tabelle gesperrt ist

Spezifische Methode: (Empfohlenes Tutorial: Lern-...

So rufen Sie die Browser-Sharing-Funktion in Vue auf

Vorwort Vue (ausgesprochen /vjuː/, ähnlich wie vi...

Die umfassendste package.json-Analyse

Inhaltsverzeichnis 1. Übersicht 2. Namensfeld 3. ...

Was ist SSH-Portweiterleitung? Was nützt das?

Inhaltsverzeichnis Vorwort 1. Lokale Portweiterle...

CSS realisiert die Layoutmethode „Fest links“ und „Adaptiv rechts“

1. Schwebendes Layout 1. Lassen Sie zuerst das Di...

Über das Problem beim Schreiben von Plugins zum Mounten von DOM in vue3

Im Vergleich zu vue2 verfügt vue3 über ein zusätz...

Analyse des kumulativen Aggregationsprinzips von MySQL und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...

JavaScript implementiert einfache Rechnerfunktion

In diesem Artikel wird der spezifische JavaScript...