Table des matières
Connaissances préalables
Préparation
实现登录功能
总结
Maison interface Web uni-app Comment utiliser vuex pour implémenter la fonction de connexion dans Uniapp

Comment utiliser vuex pour implémenter la fonction de connexion dans Uniapp

Apr 20, 2023 pm 01:55 PM

Vue.js est aujourd'hui l'un des frameworks JavaScript les plus populaires dans le développement front-end. Et uni-app est un framework permettant de développer des applications multiplateformes à l'aide de Vue.js. Vuex est la bibliothèque de gestion d'état de Vue.js et une partie importante de la gestion de l'état des données dans uni-app. Dans cet article, nous présenterons comment uni-app utilise Vuex pour implémenter la fonction de connexion et peut obtenir davantage de gestion de l'état grâce à cette méthode.

Connaissances préalables

Avant de comprendre comment uni-app utilise Vuex pour implémenter la fonction de connexion, vous devez apprendre les technologies connexes suivantes :

  • Bases de HTML et CSS
  • Bases de Vue.js
  • Bases d'uni-app
  • Connaissances de base de Vuex

Si vous maîtrisez les techniques ci-dessus, vous pouvez continuer à lire.

Préparation

Avant de commencer le transfert d'état entre différentes pages, nous devons préparer le travail suivant :

  1. Créer un nouveau projet dans uni-app et utiliser Vuex. Vous pouvez utiliser des outils tels que HBuilderX pour créer des projets uni-app et choisir d'intégrer Vuex par défaut.
  2. Ouvrez le projet dans HBuilderX et créez un fichier Login.vue dans le répertoire des pages. Modifiez le fichier App.vue et modifiez son contenu comme suit :

    <template>
      <div>
        <router-view />
      </div>
    </template>
    
    <script>
    export default {
      onLaunch() {
        uni.reLaunch({
          url: '/pages/login/login'
        })
      }
    }
    </script>
    Copier après la connexion
  3. Installez et configurez la bibliothèque uni-request dans uni-app, et citez-la en haut du fichier main.js comme suit :

    import uniRequest from 'uni-request';
            
    uniRequest.defaults.baseURL = 'http://localhost:3000/api';
            
    // 请求拦截器
    uniRequest.interceptors.request.use((config) => {
      const token = uni.getStorageSync('token') || '';
      config.headers.Authorization = token;
      return config;
    });
            
    // 响应拦截器
    uniRequest.interceptors.response.use((response) => {
      if (response.statusCode === 401) {
        uni.removeStorageSync('token');
        uni.reLaunch({
          url: '/pages/login/login'
        });
      }
      return response.data;
    }, (error) => {
      return Promise.reject(error);
    });
    Copier après la connexion

    uni-request nous permet d'effectuer plus facilement des requêtes HTTP dans uni-app. uni-request 库使我们可以更方便地在 uni-app 中进行 HTTP 请求。

实现登录功能

在以上工作完成之后,我们可以开始实现登录功能了。下面是具体的实现方法:

  1. 在 Login.vue 文件中编写登录表单,包括一个用户名输入框和一个密码输入框。代码如下:

    <template>
      <view class="container">
        <form @submit.prevent="handleSubmit">
          <view class="field">
            <input type="text" name="username" v-model="form.username" placeholder="请输入用户名" />
          </view>
          <view class="field">
            <input type="password" name="password" v-model="form.password" placeholder="请输入密码" />
          </view>
          <view class="field">
            <button class="btn" type="submit">登录</button>
          </view>
        </form>
      </view>
    </template>
    Copier après la connexion
  2. 在 Login.vue 文件中创建一个 computed,用于检查用户名和密码是否为空,并在 methods 中编写一个 handleSubmit 方法,用于提交登录表单。代码如下:

    export default {
      data() {
        return {
          form: {
            username: '',
            password: ''
          }
        };
      },
      computed: {
        isFormValid() {
          return this.form.username.trim() !== '' && this.form.password.trim() !== '';
        }
      },
      methods: {
        async handleSubmit() {
          const data = await this.$store.dispatch('login', this.form);
          uni.setStorageSync('token', data.token);
          uni.reLaunch({
            url: '/pages/index/index'
          });
        }
      }
    };
    Copier après la connexion
  3. 在 store 目录下创建一个 store.js 文件,并定义一个名为 user 的 Vuex 模块。这个模块包含以下三个部分:

    • state:状态对象,包含用户信息和 token。
    • getters:计算属性,用于派生新的状态,包括用户名和是否已登录。
    • actions:用于异步操作,包括登录和注销。
  4. store.js 中定义用于获取和设置当前用户信息的 state,以及用于计算新状态的 getters,代码如下:

    const state = {
      user: null,
      token: null
    };
    
    const getters = {
      username: (state) => {
        return state.user ? state.user.username : '';
      },
      isLoggedIn: (state) => {
        return !!state.token;
      }
    };
    Copier après la connexion
  5. store.js 中定义一个 mutations,用于更新 state。在这个示例中,我们将更新用户信息和 token。代码如下:

    const mutations = {
      setUser(state, user) {
        state.user = user;
      },
      setToken(state, token) {
        state.token = token;
      }
    };
    Copier après la connexion
  6. store.js 中定义一个 actions,用于异步调用后端服务器进行用户登录,并更新 state。你可以使用 uni-request 库来进行异步请求。代码如下:

    const actions = {
      async login({ commit }, { username, password }) {
        const { data } = await uniRequest.post('/login', { username, password });
        commit('setUser', data.user);
        commit('setToken', data.token);
        return data;
      }
    };
    Copier après la connexion
  7. store.js 中创建一个 index.js,用于暴露我们定义好的模块。代码如下:

    import Vue from 'vue';
    import Vuex from 'vuex';
    import user from './modules/user';
    
    Vue.use(Vuex);
    
    const store = new Vuex.Store({
      modules: {
        user
      }
    });
    
    export default store;
    Copier après la connexion

总结

在这篇文章中,我们学习了在 uni-app 中如何使用 Vuex 实现登录功能。我们还演示了如何使用 uni-request 库进行异步请求,以及如何定义 actionsmutations 来更新 state

Implémentation de la fonction de connexion

🎜Une fois le travail ci-dessus terminé, nous pouvons commencer à implémenter la fonction de connexion. Voici la méthode de mise en œuvre spécifique : 🎜🎜🎜🎜Écrivez un formulaire de connexion dans le fichier Login.vue, comprenant une zone de saisie du nom d'utilisateur et une zone de saisie du mot de passe. Le code est le suivant : 🎜rrreee🎜🎜🎜Créez un calculé dans le fichier Login.vue pour vérifier si le nom d'utilisateur et le mot de passe sont vides, et écrivez un dans <code>méthodes code> >handleSubmit, utilisée pour soumettre le formulaire de connexion. Le code est le suivant : 🎜rrreee🎜🎜🎜Créez un fichier store.js dans le répertoire du magasin et définissez un module Vuex nommé user. Ce module contient les trois parties suivantes : 🎜🎜🎜state : objet d'état, comprenant les informations utilisateur et le jeton. 🎜🎜getters : propriétés calculées, utilisées pour dériver de nouveaux états, y compris le nom d'utilisateur et le fait d'être connecté. 🎜🎜actions : utilisé pour les opérations asynchrones, y compris la connexion et la déconnexion. 🎜🎜🎜🎜🎜 Définissez dans store.js le state utilisé pour obtenir et définir les informations de l'utilisateur actuel, et les getters utilisés pour calculer le new state >, le code est le suivant : 🎜rrreee🎜🎜🎜Définissez une mutations dans store.js pour mettre à jour state. Dans cet exemple, nous mettrons à jour les informations utilisateur et le jeton. Le code est le suivant : 🎜rrreee🎜🎜🎜Définissez une actions dans store.js pour appeler de manière asynchrone le serveur backend pour la connexion de l'utilisateur et mettre à jour l'étatcode>. Vous pouvez utiliser la bibliothèque uni-request pour effectuer des requêtes asynchrones. Le code est le suivant : 🎜rrreee🎜🎜🎜Créez un index.js dans store.js pour exposer les modules que nous avons définis. Le code est le suivant : 🎜rrreee🎜🎜Résumé🎜🎜Dans cet article, nous avons appris comment utiliser Vuex pour implémenter la fonction de connexion dans uni-app. Nous avons également montré comment utiliser la bibliothèque uni-request pour effectuer des requêtes asynchrones, et comment définir des actions et des mutations pour mettre à jour state. données dans . 🎜🎜L'utilisation de Vuex peut nous faciliter la gestion de l'état de notre application et nous aider à développer rapidement des applications complexes. Si vous envisagez de développer des applications multiplateformes en uni-app, il est très important de maîtriser l'utilisation de Vuex. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quels sont les différents types de tests que vous pouvez effectuer dans une application UNIAPP? Quels sont les différents types de tests que vous pouvez effectuer dans une application UNIAPP? Mar 27, 2025 pm 04:59 PM

L'article traite de divers types de tests pour les applications UNIAPP, y compris l'unité, l'intégration, les tests fonctionnels, UI / UX, les performances, la plate-forme multiplateforme et la sécurité. Il couvre également une compatibilité multiplateforme et recommande des outils comme JES

Comment pouvez-vous réduire la taille de votre package d'application UNIAPP? Comment pouvez-vous réduire la taille de votre package d'application UNIAPP? Mar 27, 2025 pm 04:45 PM

L'article traite des stratégies pour réduire la taille du package UNIAPP, en se concentrant sur l'optimisation du code, la gestion des ressources et les techniques comme le fractionnement du code et le chargement paresseux.

Quels outils de débogage sont disponibles pour le développement UNIAPP? Quels outils de débogage sont disponibles pour le développement UNIAPP? Mar 27, 2025 pm 05:05 PM

L'article traite des outils de débogage et des meilleures pratiques pour le développement de l'UNIAPP, en se concentrant sur des outils comme HBuilderx, WeChat Developer Tools et Chrome Devtools.

Comment pouvez-vous utiliser le chargement paresseux pour améliorer les performances? Comment pouvez-vous utiliser le chargement paresseux pour améliorer les performances? Mar 27, 2025 pm 04:47 PM

Le chargement paresseux dépasse les ressources non critiques pour améliorer les performances du site, réduire les temps de chargement et l'utilisation des données. Les pratiques clés incluent la priorité au contenu critique et l'utilisation d'API efficaces.

Comment pouvez-vous optimiser les images pour les performances Web à UniApp? Comment pouvez-vous optimiser les images pour les performances Web à UniApp? Mar 27, 2025 pm 04:50 PM

L'article discute de l'optimisation des images dans UniaPP pour de meilleures performances Web par compression, conception réactive, chargement paresseux, mise en cache et utilisation du format WebP.

Comment UniApp gère-t-il la configuration et le style global? Comment UniApp gère-t-il la configuration et le style global? Mar 25, 2025 pm 02:20 PM

UniApp gère la configuration globale via Manifest.json et le style via app.vue ou app.scss, en utilisant Uni.scss pour les variables et les mixins. Les meilleures pratiques incluent l'utilisation de SCSS, de styles modulaires et de conception réactive.

Quels sont les modèles communs pour gérer des structures de données complexes dans UNIAPP? Quels sont les modèles communs pour gérer des structures de données complexes dans UNIAPP? Mar 25, 2025 pm 02:31 PM

L'article discute de la gestion des structures de données complexes dans l'UNIAPP, en se concentrant sur des modèles tels que Singleton, Observer, Factory et State, et des stratégies pour gérer les changements d'état de données à l'aide de l'API de composition Vuex et Vue 3.

Quelles sont les propriétés calculées à UniApp? Comment sont-ils utilisés? Quelles sont les propriétés calculées à UniApp? Comment sont-ils utilisés? Mar 25, 2025 pm 02:23 PM

Les propriétés calculées de l'UNIAPP, dérivées de Vue.js, améliorent le développement en fournissant une gestion des données réactive, réutilisable et optimisée. Ils mettent automatiquement à jour lorsque les dépendances changent, offrant des avantages de performance et simplifiant la gestion de l'État

See all articles