Heim > Web-Frontend > uni-app > Hauptteil

Eine kurze Analyse der Implementierungsmethode der Uniapp-Initialisierung ohne Login-Sprung

PHPz
Freigeben: 2023-04-06 14:42:29
Original
2632 Leute haben es durchsucht

Bei der Entwicklung mit UniApp stoßen wir möglicherweise auf Seiten, für deren Eingabe sich Benutzer anmelden müssen, z. B. Einkaufswagen, Bestellseiten usw. Wie kann man also automatisch zur Anmeldeseite springen, wenn man nicht angemeldet ist? In diesem Artikel erhalten Sie eine detaillierte Einführung in die Implementierungsmethode der UniApp-Initialisierung ohne Login-Sprung.

1. Anforderungsanalyse

Fügen Sie die Anmeldefunktion zur Anwendung hinzu und aktivieren Sie sie, um beim Aufrufen der entsprechenden Seite zur Anmeldeseite zu springen, wenn Sie nicht angemeldet sind.

2. Implementierungsideen

1. Schreiben Sie den anmeldebezogenen Logikcode in die App.vue-Datei.
2. Verwenden Sie einen Routen-Interceptor, um zu überprüfen, ob der Benutzer angemeldet ist, wenn er eine Seite betritt, die eine Anmeldung erfordert. Andernfalls wird automatisch zur Anmeldeseite gesprungen.
3. Verwenden Sie Vuex, um Benutzerinformationen zu verwalten, den Anmeldestatus zu speichern und Benutzerinformationen zu übertragen.

3. Code-Implementierung

1. Anmeldelogik in App.vue hinzufügen

Wir können die Anmeldeverifizierungslogik in der erstellten Lebenszyklusfunktion in App.vue ausführen. Zum Beispiel:

created(){
    // 检查用户是否已登录
    let loginInfo = uni.getStorageSync('loginInfo') || null;
    if(loginInfo){
        this.$store.commit('saveUserInfo', loginInfo);
    }else{
        uni.navigateTo({
            url: '/pages/login/login'
        });
    }
}
Nach dem Login kopieren

Hier erhalten wir die lokal gespeicherten Anmeldeinformationen über die Methode uni.getStorageSync(). Wenn die Anmeldeinformationen vorhanden sind, übergeben Sie die Benutzerinformationen an den Vuex-Statusmanager. Andernfalls springen Sie zur Anmeldeseite.

2. Routen-Interceptor implementieren

Im Allgemeinen wird der Anmeldestatus vor dem Routensprung überprüft. Wir können einen Routen-Interceptor definieren, um relevante Vorgänge auszuführen, bevor wir zu der Seite springen, die eine Anmeldung erfordert.

Führen Sie die Route in main.js ein:

import router from './router';
Nach dem Login kopieren

und fügen Sie den Routen-Interceptor hinzu:

router.beforeEach((to, from, next) => {
    // 进入需要登录的页面前先进行登录状态检查
    let isLogin = store.getters.getLoginStatus;
    if (to.meta.requireAuth) { 
        // 如果未登录,则跳转至登录页面
        if(!isLogin){
            next({
                path: '/login',
                query: { redirect: to.fullPath }
            });
        }else{
            next();
        }
    }else{
        next();
    }
});
Nach dem Login kopieren

Hier bestimmen wir, ob für die Seite eine Anmeldung erforderlich ist, basierend darauf, ob das Feld requireAuth in der Route markiert ist. Wenn Sie sich anmelden müssen, prüfen Sie, ob der aktuelle Benutzer angemeldet ist. Wenn nicht, springen Sie zur Anmeldeseite, andernfalls erlauben Sie den weiteren Zugriff. Wenn keine Anmeldung erforderlich ist, springen Sie direkt.

3. Implementieren Sie die Speicherung und Bereitstellung von Benutzerinformationen.

Erstellen Sie im Vuex-Statusmanager ein Modul mit dem Namen userInfo, um Benutzerinformationen zu verwalten. Wir können darin einige benutzerbezogene Getter, Mutationen und Aktionen definieren.

Definieren Sie in der Datei userInfo.js den folgenden Code:

const state = {
    userInfo: null
}

const getters = {
    getUserInfo: state => state.userInfo,
    getLoginStatus: state => state.userInfo != null
}

const mutations = {
    saveUserInfo (state, userInfo) {
        state.userInfo = userInfo;
        uni.setStorageSync('loginInfo', userInfo);
    },
    logout(state){
        state.userInfo = null;
        uni.removeStorageSync('loginInfo');
    }
}

const actions = {
    login({ commit }, userInfo) {
        // 登录操作
        commit('saveUserInfo', userInfo);
    },
    logout({ commit }){
        // 登出操作
        commit('logout');
    }
}

export default {
    state,
    getters,
    mutations,
    actions
}
Nach dem Login kopieren

Hier definieren wir Funktionen wie getUserInfo, getLoginStatus, saveUserInfo, logout und login, die auch zum Abrufen, Speichern und Löschen von Benutzerinformationen verwendet werden als Login und Login außer Betrieb simulieren. Wenn die saveUserInfo-Methode Benutzerinformationen speichert, werden diese nicht nur an den Status übergeben, sondern auch lokal gespeichert, um eine dauerhafte Speicherung zu ermöglichen.

4. Zusammenfassung

Durch die Verwendung des von UniApp bereitgestellten Routing-Interceptors und Vuex-Statusmanagers wird die Funktion des automatischen Springens zur Anmeldeseite realisiert, wenn Sie nicht angemeldet sind. Wenn Sie Anmeldedaten auf anderen Seiten verwenden müssen, müssen Sie Vuex nur in der entsprechenden Komponente einführen, was sehr praktisch ist.

Das obige ist der detaillierte Inhalt vonEine kurze Analyse der Implementierungsmethode der Uniapp-Initialisierung ohne Login-Sprung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!