vue+tp5はシンプルなログイン機能を実現

vue+tp5はシンプルなログイン機能を実現

この記事では、参考までに、簡単なログイン機能を実装するためのvue+tp5の具体的なコードを紹介します。具体的な内容は次のとおりです。

準備: package.jsonに示されているように、vue-cli、element-uiをインストールします。インストール手順に従ってください。

1. srcディレクトリにビューページを作成する

2. /src/router/index.js に次のコードを記述します。

'vue' から Vue をインポートします
'vue-router' から Router をインポートします。
'@/components/HelloWorld' から HelloWorld をインポートします。
'@/views/login/index.vue' からログインをインポートします。
 
Vue.use(ルーター)
 
デフォルトの新しいルーターをエクスポートします({
  ルート: [
    {
      パス: '/'、
      名前: 'HelloWorld',
      コンポーネント: HelloWorld
    }, {
      パス: '/login',
      コンポーネント: ログイン
    }
  ]
})

3. app.vue を次の図のように復元します。

4. /src/views/login/index.vue でコードの記述を開始します (ログイン テンプレートを見つけます)。

<テンプレート>
    <div id="app-1">
        <div class="content">
            <div class="content_input">
                <div class="title">
                    <p>管理者ログイン</p>
                </div>
                <el-input v-model="UserName" clearable placeholder="ユーザー名"></el-input>
                <el-input v-model="PassWord" clearable show-password placeholder="Password"></el-input>
                <div class="content_button">
                    <el-button type="primary" @click="SignIn">ログイン</el-button>
                </div>
            </div>
        </div>
    </div>
</テンプレート>
 
<スクリプト>
'@/assets/css/style.css' をインポートします
定数 axios = require('axios')
エクスポートデフォルト{
  名前: 'ログイン',
  データ () {
    戻る {
      ユーザー名: '',
      パスワード: ''
    }
  },
  メソッド: {
    サインイン () {
      それを = これとする
      ユーザー名 = that.UserName とします
      パスワード = that.PassWord とします
      if (!ユーザー名) {
        this.$notify.error({
          タイトル: 「エラー」、
          メッセージ: 'ユーザー名は空欄にできません'
        });
        偽を返す
      } そうでなければ (!パスワード) {
        this.$notify.error({
          タイトル: 「エラー」、
          メッセージ: 「パスワードは空欄にできません」
        })
        偽を返す
      } それ以外 {
        // 処理のために情報をバックエンドに渡す axios.post('/api/login/doLogin', {
          名前: ユーザー名、
          psw: パスワード
        })
          .then(関数 (応答) {
            console.log(応答)
          })
          .catch(関数 (エラー) {
            コンソール.log(エラー)
          })
      }
    }
  }
}
</スクリプト>

5. config/index.js で proxytable を設定し、クロスドメインリクエストに axios を使用する

プロキシテーブル: {
        '/api/*': { // api はプロキシインターフェースです target: 'http://localhost:8085/index.php/index', // ここでローカルサービスにプロキシします changeOrigin: true,
            パス書き換え: {
              // これはリンクを追加します。たとえば、インターフェースに実際に /api が含まれている場合、この構成は必須です。
              '^/api': '/', // と次の 2 つの書き方があり、人によってニーズが異なります。
              // /api + /api == http://localhost:54321/api と同等
              // '^/api' と記述した場合: '/'
              // /api + / == http://localhost:54321/ と同等
              // /api ここ == http://localhost:54321
            }
        }
    },

6. /src/main.js

// `import` コマンドで読み込む Vue ビルド バージョン
// (ランタイムのみまたはスタンドアロン) が webpack.base.conf にエイリアスとともに設定されています。
'vue' から Vue をインポートします
'./App' から App をインポートします
'vue-router' から Router をインポートします。
'./router' からルーターをインポートします
'axios' から axios をインポートします
'element-ui' から ElementUI をインポートします。
'element-ui/lib/theme-chalk/index.css' をインポートします。
'font-awesome/css/font-awesome.min.css' をインポートします。
 
Vue.use(要素UI)
Vue.use(ルーター)
 
Vue.config.productionTip = false
Vue.prototype.$axios = axios
 
/* eslint を無効にする no-new */
新しいVue({
  el: '#app',
  ルーター、
  コンポーネント: { アプリ },
  テンプレート: '<App/>'
})

7.tp5バックエンドのindex/controller/Login.phpで:

<?php
/**
 * PhpStorm によって作成されました。
 * ユーザー: mx1
 * 日付: 2021/11/9
 * 時間: 15:21
 */
 
名前空間 app\index\controller;
 
 
think\Controller を使用します。
 
クラスLoginはControllerを拡張します
{
    パブリック関数doLogin(){
        $name=input('post.name');
        $psw=入力('post.psw');
        json([$name,$psw]) を返します。
    }
 
}

注: 設定したプロキシテーブルが機能しない場合は、インターフェースが正しいことを確認してから、cmd でプロジェクト ディレクトリを見つけて、npm run dev を実行します。

効果:

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueはログインしていないときにログインページにジャンプする方法を実装します
  • Vue 学習ロード ログイン登録サンプルコード
  • Vue WeChat 認証ログインソリューション
  • Vue+springboot フロントエンドとバックエンドの分離により、シングルサインオンのクロスドメイン問題解決を実現
  • Vue はログイン後に前のページへのページジャンプを実装します
  • Vue.jsとElement-UIを使用してシンプルなログインページを作成する例
  • vueルーティングジャンプ時にユーザーがログインしているか判断する実装
  • Vueはログインインターフェースの検証コード機能を実装します
  • Vue はログインページの検証コードと検証プロセスの分析を実装します (初心者向け)
  • Vue.jsは、ユーザーコメント、ログイン、登録、情報変更機能を実装します。

<<:  ChromeとIEに対応したWMPに埋め込まれたHTMLの詳細な紹介

>>:  CSS 要素を表示および非表示にする 9 つの方法

推薦する

Trash-Cli: Linux のコマンドラインごみ箱ツール

ゴミ箱は Linux ユーザー、Windows ユーザー、Mac ユーザーにとって非常に一般的なので...

C# は MySQL コマンドラインのバックアップとリカバリを実装します

MySQL データベースをバックアップするためのツールは多数あります。過去 2 日間で、C# を使用...

vuex データの永続化のための 2 つの実装ソリューション

目次ビジネス要件:解決策 1: vuex-persistedstate解決策2: vuex-pers...

MySQL シリーズ 12 バックアップとリカバリ

目次チュートリアルシリーズ1. バックアップ戦略の説明1. バックアップの種類2. バックアップで考...

MySQL におけるさまざまな一般的な結合テーブルクエリの例の概要

この記事では、例を使用して、MySQL のさまざまな一般的な結合テーブルクエリについて説明します。ご...

Web コンポーネントの内部イベント コールバックと問題点の分析

目次前面に書かれたWC とは何でしょうか?現在の欠陥1. コンポーネント内部イベントのコールバック2...

MySQLの半同期の詳細な説明

目次序文MySQL マスタースレーブレプリケーションMySQL でサポートされているレプリケーション...

Dockerでデータディレクトリを移行する方法

目次ディスク使用量の表示ディスク クリーンアップ (軽々しく使用しないでください)データの移行ディス...

Linux DMAインターフェースの知識ポイントの詳細な説明

1. 2種類のDMAマッピング1.1. 一貫性のあるDMAマッピング主に長期間使用されるエリアをマッ...

MySQLの文字タイプは大文字と小文字を区別します

デフォルトでは、MySQLの文字タイプは大文字と小文字を区別しません。つまり、name='A...

最小限の展開で CentOS8 に OpenStack Ussuri をインストールする方法の詳細なチュートリアル

CentOS8 に最小限のデプロイメントで OpenStack Ussuri をインストールするため...

JavaScript CollectGarbage 関数の例

まず、メモリ解放の例を見てみましょう。 <スクリプト言語="JavaScript&q...

ウェブデザインにおける円形要素の使用例 25 選

本日の投稿では、Web デザインで使用される円形要素の優れた例をいくつか挙げ、美しい丸いボタン、メニ...

jsで七夕告白連打の効果を実現、jQueryで連打技術を実現

この記事では、jsとjQueryテクノロジーを使用して告白弾幕を実現する方法を紹介します。具体的な内...