Heim > Artikel > Web-Frontend > Vue.js schreibt ein Beispiel einer SPA-Anmeldeseite
vue.js Hauptframework
Vuex State Management
vue -Router-Routing-Verwaltung
Im allgemeinen Anmeldeprozess ist eine Front-End-Lösung:
prüfen Status: Überprüfen Sie, ob beim Betreten der Seite oder bei Änderung der Route ein Anmeldestatus vorliegt (der in cookie
oder 本地存储
gespeicherte Wert). Wenn ein Anmeldestatus vorhanden ist, fragen Sie ab die Anmeldeinformationen (UID, Avatar usw.) und speichern Sie sie. Wenn nicht, springen Sie zur Anmeldeseite (oder im Anmeldefeld). die vom Benutzer eingegebenen Informationen sind legal;
Senden Sie eine Anmeldeanfrage, nachdem die Überprüfung fehlgeschlagen ist, wird sie an den Benutzer zurückgesendet; 🎜>
session
Zuvor wird davon ausgegangen, dass die Route der Anmeldeseite
platzieren.
-Konfiguration durch:
/login
Überprüfen Sie den Status und springen Sie/user_info
App.vue
Wir müssen den Status zweimal überprüfen: router-view
1. Wenn der Benutzer die Seite öffnet; >
// component/App.vue <template><div class="container" id="app"> <transition name="fade"><keep-alive> <router-view></router-view></keep-alive> </transition></div></template> ...Um das Benutzererlebnis zu verbessern, muss das Frontend beim Öffnen der Seite durch den Benutzer prüfen, ob er angemeldet ist, und erfordert nicht, dass sich der Benutzer erneut anmeldet. Diese Implementierung ist sehr einfach. Wir haben es im
-Hook von vue-router
geschrieben:
// js/app.jsimport Vue from 'vue'import VueRouter from 'vue-router'import Login from '../component/Login.vue'import UserInfo from '../component/UserInfo.vue' Vue.use(VueRouter);const router = new VueRouter({ routes: [{path: '/login',component: Login }, {path: '/user_info',component: UserInfo }] }) ...
Der Benutzer ist beim Betreten der Seite angemeldet, aber die Anmeldung ist beim Ausführen des Vorgangs abgelaufen ;
Der Benutzer hat den Vorgang manuell gelöscht checkLogin
// js/app.js ... var app = new Vue({ data: {}, el: '#app', render: h => h(App), router, store, methods:{ checkLogin(){ //检查是否存在session //cookie操作方法在源码里有或者参考网上的即可 if(!this.getCookie('session')){//如果没有登录状态则跳转到登录页this.$router.push('/login'); }else{//否则跳转到登录后的页面this.$router.push('/user_info'); } } } })
Der Benutzer hat ihn manuell eingegeben (oder aus den Favoriten eingegeben). ) eine Route, die eine Anmeldung ohne Anmeldung erforderte. vue实例
created
// js/app.js ... var app = new Vue({ ... created() {this.checkLogin(); }, methods:{ checkLogin(){ ... } } })Der Benutzer betritt die Route der Anmeldeseite, wenn er angemeldet ist
路由
cookie
Benutzerinformationen abrufen本地storage
einführen (empfohlen):
vue
Um zu verhindern, dass einige unerwartete Zeichen und zu häufige Anfragen in den Hintergrund übertragen werden, muss das Frontend die Eingaben des Benutzers überprüfen und wiederholte Anfragen verhindern . Natürlich sind die zulässigen Zeichen verschiedener Websites unterschiedlich. Hier überprüfen wir nur die illegalen Zeichen, wenn watch
verwendet wird:
// js/app.js ... var app = new Vue({ ... //监听路由检查登录 watch:{"$route" : 'checkLogin' }, //进入页面时 created() {this.checkLogin(); }, methods:{ checkLogin(){ ... } } })
Das 一般过程
ist hier die Anmeldeanforderungsmethode und das Passwort an das Backend gesendet
vuex
// component/App.vue ... <script>export default { ... mounted(){//组件开始挂载时获取用户信息this.getUserInfo(); }, methods: {//请求用户的一些信息 getUserInfo(){ this.userInfo = {nick: 'Doterlin',ulevel: 20,uid: '10000',portrait: 'images/profile.png' } //获取信息请求 ts.$http.get(url, {//参数"params": this.userInfo }).then((response) => {//Successif(response.data.code == 0){ this.$store.commit('updateUserInfo', this.userInfo); } }, (response) => {//Error }); } } } </script> ...
Abmeldenapp.js
store.js
Beim Abmelden müssen einige das Backend anfordern, andere nicht. Das Wichtigste ist, den gespeicherten Anmeldestatus zu löschen: app.js
// js/app.js// Vuex配置 ... const store = new Vuex.Store({ state: {domain:'http://test.example.com', //保存后台请求的地址,修改时方便(比方说从测试服改成正式服域名) userInfo: { //保存用户信息 nick: null, ulevel: null, uid: null, portrait: null } }, mutations: {//更新用户信息 updateUserInfo(state, newUserInfo) { state.userInfo = newUserInfo; } } }) ...
Das obige ist der detaillierte Inhalt vonVue.js schreibt ein Beispiel einer SPA-Anmeldeseite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!