In diesem Artikelbeispiel wird der spezifische Code des Vue-Projekts zur Erzielung des Anmelde- und Registrierungseffekts zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt HauptinhaltDas Ziel dieses Kapitels: vue+element-ui schließt Registrierung und Anmeldung ab 1. Effektanzeige 2. Seite anzeigen: Ansichten Realisierung des Registrierungsseiteneffekts: <Vorlage> <div Klasse="Anmeldeabschnitt"> <!-- :rules="Regeln" --> <el-form label-position="oben" label-width="100px" class="demo-ruleForm" :rules="Regeln" :model="rulesForm" status-icon ref='ruleForm'> <el-form-item label="Benutzername" prop="Name"> <el-input Typ="Text" v-Modell="RegelnForm.name"></el-input> </el-form-item> <el-form-item label="Passwort" prop="Passwort"> <el-input type="Passwort" v-model="rulesForm.passwort"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')">Senden</el-button> <el-button>Zurücksetzen</el-button> </el-form-item> </el-form> </div> </Vorlage> <Skript> importiere {login} von '@/service/api'; Standard exportieren { Daten() { zurückkehren { RegelnForm:{ Name:'', Passwort:'' }, Regeln: Name:[ {erforderlich: wahr, Nachricht: 'Der Name ist nicht geschrieben', Auslöser: 'Unschärfe'}, {min:1,max:5,message:'Länge liegt zwischen 3 und 5 Zeichen'} ], Passwort:[ {erforderlich: wahr, Nachricht: 'Der Name ist nicht geschrieben', Auslöser: 'Unschärfe'}, {min:3,max:5,message:'Länge liegt zwischen 3 und 5 Zeichen'} ] } }; }, Methoden: { Formular absenden(Formularname){ dies.$refs[formName].validate((valid)=>{ if(valid){//Wenn die Prüfung erfolgreich ist, sende den Benutzernamen und das Passwort an den Backend-Login({ Name:dieses.RegelnFormular.Name, Passwort:this.rulesForm.password }).dann((Daten)=>{ console.log(Daten) wenn(Datencode===0){ localStorage.setItem('Token',Daten.Daten.Token) Fenster.Standort.href='/' } wenn(Datencode===1){ dies.$Nachricht.Fehler(Daten.Nachricht) } }) }anders{ console.log('Fehler beim Senden!!'); gibt false zurück; } }) } } } </Skript> <style lang="stylus"> .login-Abschnitt Polsterung 0px 20px </Stil> anmelden.vue <Vorlage> <div Klasse="Anmeldeabschnitt"> <el-form label-position="oben" label-width="100px" class="demo-ruleForm" :rules="Regeln" :model="rulesForm" status-icon ref='ruleForm'> <el-form-item label="Benutzername" prop="Name"> <el-input Typ="Text" v-Modell="RegelnForm.name"></el-input> </el-form-item> <el-form-item label="Passwort" prop="Passwort"> <el-input type="Passwort" v-model="rulesForm.passwort"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')">Senden</el-button> <el-button>Zurücksetzen</el-button> </el-form-item> </el-form> </div> </Vorlage> <Skript> importiere {login} von '@/service/api'; Standard exportieren { Daten() { zurückkehren { RegelnForm:{ Name:'', Passwort:'' }, Regeln: Name:[ {erforderlich: wahr, Nachricht: 'Der Name ist nicht geschrieben', Auslöser: 'Unschärfe'}, {min:1,max:5,message:'Länge liegt zwischen 3 und 5 Zeichen'} ], Passwort:[ {erforderlich: wahr, Nachricht: 'Der Name ist nicht geschrieben', Auslöser: 'Unschärfe'}, {min:3,max:5,message:'Länge liegt zwischen 3 und 5 Zeichen'} ] } }; }, Methoden: { Formular absenden(Formularname){ dies.$refs[formName].validate((valid)=>{ if(valid){//Wenn die Prüfung erfolgreich ist, sende den Benutzernamen und das Passwort an den Backend-Login({ Name:dieses.RegelnFormular.Name, Passwort:this.rulesForm.password }).dann((Daten)=>{ console.log(Daten) wenn(Datencode===0){ localStorage.setItem('Token',Daten.Daten.Token) Fenster.Standort.href='/' } wenn(Datencode===1){ dies.$Nachricht.Fehler(Daten.Nachricht) } }) }anders{ console.log('Fehler beim Senden!!'); gibt false zurück; } }) } } } </Skript> <style lang="stylus"> .login-Abschnitt Polsterung 0px 20px </Stil> Weiterleitung: index.js Vue von „vue“ importieren Router von „vue-router“ importieren Vue.use(Router) Store aus '@/store' importieren importiere {userInfo} aus '@/service/api.js' Home aus '@/views/home/Home.vue' importieren Login aus '@/views/user-login/index.vue' importieren const router = neuer Router({ Modus: „Verlauf“, Routen:[ { Weg:'/', Name:"Home", Titel:"Home", Komponente:Home }, { Pfad: '/login', Name:"Anmelden", Titel:"Anmeldeseite", Komponente:Anmelden, Meta:{ Anmeldung:wahr } } ] }); router.beforeEach( async (zu, von, weiter) => { const token = localStorage.getItem('token'); const isLogin = !!Token; //Wenn Sie die Route eingeben, müssen Sie ein Token an das Backend senden, um zu überprüfen, ob es zulässig ist. const data = await userInfo(); Store.commit('chageUserInfo',Daten.Daten) if(to.matched.some(item => item.meta.login)){//Anmeldung ist erforderlichif(isLogin){//Bereits angemeldet, direkt weitergeben if(data.error === 400){//Das Backend teilt Ihnen mit, dass die Anmeldung fehlgeschlagen istnext({name:'login'}); localStorage.removeItem('Token'); zurückkehren; } wenn(zu.name === 'login'){ weiter({name:'home'}); }anders{ nächste(); } zurückkehren; } if(!isLogin && to.name === 'login'){//Nicht angemeldet, gehe aber zur Anmeldeseite next(); } if(!isLogin && to.name !== 'login'){//Nicht angemeldet, nicht die Anmeldeseite next({name:'login'}); } }anders{ nächste(); } }) Standardrouter exportieren; Zusammenfassen Das ist alles zum heutigen Inhalt. Er ist nicht sehr gut, da er noch einige Mängel aufweist. Wir werden ihn später weiter verbessern! Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Drei Möglichkeiten zur Kommunikation zwischen Docker-Containern
Im vorherigen Artikel haben Sie Docker Desktop in...
Inhaltsverzeichnis Vorwort: 1. Konzept 2. Die Vor...
rm-Befehl Der Befehl rm wird von den meisten Benu...
Die Position-Eigenschaft Die Positionseigenschaft...
Inhaltsverzeichnis Komponente zur Leistungsoptimi...
In diesem Artikel wird der spezifische JavaScript...
Inhaltsverzeichnis 1. Einleitung 2. es5-Methode 3...
Das Zählen der Größe jeder Tabelle in jeder Daten...
Die gebräuchlichste, am häufigsten verwendete und ...
Hinweis: Alle Bilder in diesem Artikel stammen au...
Die Verwendung von „Computed“ in vue3. Da vue3 mi...
In diesem Artikel wird der spezifische JavaScript...
Die Installation des RPM-Pakets ist relativ einfa...
Wenn es eine Tabelle mit einem Feld „add_time“ gi...
Vorwort Es wird gesagt, dass sich die für Betrieb...