検索
ホームページウェブフロントエンドuni-appvuexを使用してuniappにログイン機能を実装する方法

Vue.js は、今日のフロントエンド開発で最も人気のある JavaScript フレームワークの 1 つです。 uni-app は、Vue.js を使用してクロスプラットフォーム アプリケーションを開発するためのフレームワークです。 Vuex は Vue.js の状態管理ライブラリであり、uni-app におけるデータ状態管理の重要な部分です。この記事では、uni-app が Vuex を使用してログイン機能を実装する方法と、この方法を通じてより詳細な状態管理を実現する方法を紹介します。

前提知識

uni-app が Vuex を使用してログイン機能を実装する方法を理解する前に、次の関連テクノロジを学習する必要があります:

  • HTML と CSS の基本
  • Vue.js の基礎知識
  • uni-app の基礎知識
  • Vuex の基礎知識

上記の技術を習得していれば、読み続けて。

準備作業

異なるページ間の状態転送を開始する前に、次の作業を準備する必要があります。

  1. uni-appで新しいプロジェクトを作成して使用します。ビュークス。 HBuilderX などのツールを使用してユニアプリ プロジェクトを作成し、デフォルトで Vuex の統合を選択できます。
  2. HBuilderX でプロジェクトを開き、pages ディレクトリに Login.vue ファイルを作成します。 App.vue ファイルを変更し、その内容を次のように変更します。

    <template>
      <div>
        <router-view></router-view>
      </div>
    </template>
    
    <script>
    export default {
      onLaunch() {
        uni.reLaunch({
          url: &#39;/pages/login/login&#39;
        })
      }
    }
    </script>
  3. uni-app に uni-request ライブラリをインストールして構成し、main.js ファイルの先頭で引用します。

    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);
    });

    uni-request このライブラリを使用すると、uni-app での HTTP リクエストの作成が簡単になります。

ログイン機能の実装

上記の作業が完了したら、ログイン機能の実装を開始できます。具体的な実装方法は次のとおりです。

  1. ユーザー名入力ボックスとパスワード入力ボックスを含むログイン フォームを Login.vue ファイルに書き込みます。コードは次のとおりです。

    <template>
      <view>
        <form>
          <view>
            <input>
          </view>
          <view>
            <input>
          </view>
          <view>
            <button>登录</button>
          </view>
        </form>
      </view>
    </template>
  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'
          });
        }
      }
    };
  3. ストア ディレクトリに

    store.js ファイルを作成し、user という名前の Vuex モジュールを定義します。このモジュールには次の 3 つの部分が含まれています:

    • state: ユーザー情報とトークンを含む状態オブジェクト。
    • ゲッター: ユーザー名やログインしているかどうかなど、新しい状態を導出するために使用される計算されたプロパティ。
    • actions: ログインやログアウトなどの非同期操作に使用されます。
  4. 現在のユーザー情報を取得および設定し、新しい状態を計算するために、

    store.jsstate を定義します。 ##getters、コードは次のとおりです: <pre class="brush:php;toolbar:false">const state = {   user: null,   token: null }; const getters = {   username: (state) =&gt; {     return state.user ? state.user.username : '';   },   isLoggedIn: (state) =&gt; {     return !!state.token;   } };</pre>

  5. 更新用に
  6. store.js

    mutations を定義します州###。この例では、ユーザー情報とトークンを更新します。コードは次のとおりです。

    const mutations = {
      setUser(state, user) {
        state.user = user;
      },
      setToken(state, token) {
        state.token = token;
      }
    };
    バックエンド サーバーを非同期に呼び出すために使用される
  7. store.js
  8. 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;
      }
    };
  9. store.js
  10. 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;
    概要
この記事では、Vuex を使用して uni-app にログイン機能を実装する方法を学びました。また、

uni-request

ライブラリを使用して非同期リクエストを行う方法、および

actionsmutations を定義して state# のデータを更新する方法も示しました。 ## 。 Vuex を使用すると、アプリケーションの状態の管理が容易になり、複雑なアプリケーションを迅速に開発できるようになります。ユニアプリでクロスプラットフォーム アプリケーションを開発する予定がある場合は、Vuex の使用法をマスターすることが非常に重要です。

以上がvuexを使用してuniappにログイン機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
さまざまなプラットフォーム(モバイル、Webなど)で問題をどのようにデバッグしますか?さまざまなプラットフォーム(モバイル、Webなど)で問題をどのようにデバッグしますか?Mar 27, 2025 pm 05:07 PM

この記事では、モバイルプラットフォームとWebプラットフォームのデバッグ戦略について説明し、Android Studio、Xcode、Chrome Devtoolsなどのツールを強調し、OSとパフォーマンスの最適化全体で一貫した結果を得るためのテクニックについて説明します。

UNIAPP開発に利用できるデバッグツールは何ですか?UNIAPP開発に利用できるデバッグツールは何ですか?Mar 27, 2025 pm 05:05 PM

この記事では、Hbuilderx、Wechat開発者ツール、Chrome Devtoolsなどのツールに焦点を当てたUniapp開発のためのデバッグツールとベストプラクティスについて説明します。

UNIAPPアプリケーションのエンドツーエンドテストをどのように実行しますか?UNIAPPアプリケーションのエンドツーエンドテストをどのように実行しますか?Mar 27, 2025 pm 05:04 PM

この記事では、複数のプラットフォームにわたるUNIAPPアプリケーションのエンドツーエンドテストについて説明します。テストシナリオの定義、Appiumやサイプレスなどのツールの選択、環境のセットアップ、テストの書き込みと実行、結果の分析、インテグラートをカバーします

UNIAPPアプリケーションで実行できるさまざまなタイプのテストは何ですか?UNIAPPアプリケーションで実行できるさまざまなタイプのテストは何ですか?Mar 27, 2025 pm 04:59 PM

この記事では、ユニット、統合、機能、UI/UX、パフォーマンス、クロスプラットフォーム、セキュリティテストなど、UNIAPPアプリケーションのさまざまなテストタイプについて説明します。また、クロスプラットフォームの互換性を確保し、JESのようなツールを推奨しています

Uniappの一般的なパフォーマンスアンチパターンは何ですか?Uniappの一般的なパフォーマンスアンチパターンは何ですか?Mar 27, 2025 pm 04:58 PM

この記事では、過剰なグローバルデータの使用や非効率的なデータバインディングなど、UNIAPP開発における一般的なパフォーマンスアンチパターンについて説明し、これらの問題を特定して緩和してアプリのパフォーマンスを向上させる戦略を提供します。

プロファイリングツールを使用して、UNIAPPでパフォーマンスボトルネックを識別するにはどうすればよいですか?プロファイリングツールを使用して、UNIAPPでパフォーマンスボトルネックを識別するにはどうすればよいですか?Mar 27, 2025 pm 04:57 PM

この記事では、プロファイリングツールを使用して、Uniappのパフォーマンスボトルネックを識別および解決し、セットアップ、データ分析、最適化に焦点を当てています。

Uniappでネットワークリクエストを最適化するにはどうすればよいですか?Uniappでネットワークリクエストを最適化するにはどうすればよいですか?Mar 27, 2025 pm 04:52 PM

この記事では、Uniappでネットワーク要求を最適化するための戦略について説明し、遅延の削減、キャッシュの実装、および監視ツールを使用してアプリケーションのパフォーマンスを向上させることに焦点を当てています。

UniappのWebパフォーマンスのために画像を最適化するにはどうすればよいですか?UniappのWebパフォーマンスのために画像を最適化するにはどうすればよいですか?Mar 27, 2025 pm 04:50 PM

この記事では、圧縮、レスポンシブデザイン、怠zyなロード、キャッシング、およびWebP形式の使用を通じて、Webパフォーマンスを向上させるために、Uniappの画像の最適化について説明します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール