Vueはユーザーログイン切り替えを実装します

Vueはユーザーログイン切り替えを実装します

この記事では、ユーザーのログイン切り替えを実現するためのVueの具体的なコードを例として紹介します。具体的な内容は以下のとおりです。

切り替えには問題がある

コード

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>タイトル</title>
</head>
<本文>
    <div id="アプリ">
        <span v-if="isUser">
            <label for="username">ユーザーアカウント</label>
            <input type="text" id="ユーザー名" placeholder="ユーザーアカウント">
        </span>
        <span v-else>
            <label for="email">ユーザー メールボックス</label>
            <input type="text" id="email" placeholder="ユーザーのメールアドレス">
        </span>
        <button @click="isUser = !isUser">スイッチタイプ</button>
    </div>
    <script src="../js/vue.js"></script>
    <スクリプト>
        constアプリ = 新しいVue({
            el: '#app',
            データ: {
                ユーザー: true
            }
        })

    </スクリプト>
</本文>
</html>

エフェクト表示

問題

  • コンテンツを入力中にタイプを切り替えると、テキストには以前に入力したコンテンツが引き続き表示されます。
  • しかし、論理的に言えば、別の入力要素に切り替える必要があります。
  • 他の入力要素には、何もコンテンツを入力しませんでした。

なぜこの問題が発生するのでしょうか?

これは、Vue がDOM をレンダリングするときに、パフォーマンス上の理由から、新しい要素を作成するのではなく、既存の要素を可能な限り再利用するためです。
上記の場合、Vue は元の入力要素が使用されなくなり、 else の入力として直接使用されていることを検出します。

解決

  • 対応する入力にキーを追加する
  • キーが異なることを確認してください

完璧版ログイン例

入力に異なるキーを追加する

コード

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>タイトル</title>
</head>
<本文>
    <div id="アプリ">
        <span v-if="isUser">
            <label for="username">ユーザーアカウント</label>
            <input type="text" id="ユーザー名" placeholder="ユーザーアカウント" key="ユーザー名">
        </span>
        <span v-else>
            <label for="email">ユーザー メールボックス</label>
            <input type="text" id="email" placeholder="ユーザーのメールアドレス" key="email">
        </span>
        <button @click="isUser = !isUser">スイッチタイプ</button>
    </div>
    <script src="../js/vue.js"></script>
    <スクリプト>
        constアプリ = 新しいVue({
            el: '#app',
            データ: {
                ユーザー: true
            }
        })

    </スクリプト>
</本文>
</html>

エフェクト表示

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

以下もご興味があるかもしれません:
  • Vueは長時間操作していないユーザー向けに自動ログイン・ログアウト機能を実装
  • Vueはユーザーログインモードの切り替え機能を実装します
  • Django RESTフレームワークvueはユーザーログインの詳細を実装します
  • VueプロジェクトはlocalStorage+Vuexを使用してユーザーのログイン情報を保存します
  • vue-router beforeEach ジャンプルートでユーザーのログイン状態を確認する
  • Vue が Cookie を通じてユーザーのログイン情報を取得する方法の詳細な説明
  • vue-router beforEachを使用して、ユーザーログインジャンプルートフィルタリングを判断する機能を実装する
  • vueルーティングジャンプ時にユーザーがログインしているか判断する実装
  • Vue でユーザーのログイン状態を保存するためのサンプルコード
  • Vue.jsは、ユーザーコメント、ログイン、登録、情報変更機能を実装します。

<<:  VirtualBox仮想マシンがNATモードで外部ネットワークに接続できない問題の解決策

>>:  VirtualBox でのホストオンリー + NAT モードのネットワーク構成

推薦する

プレーヤー機能を実現するためのvue + element uiのサンプルコード

効果画像のない表示は単なる空虚な言葉です。 1. オーディオをベースにし、elementUI と組み...

WebpackはCSSファイルを読み込み、その設定方法

webpackはCSSファイルとその設定をロードします複数の CSS ファイルを作成した後、HTML...

MySQL のあまり知られていないソート方法

序文ORDER BY 字段名升序/降序、このソートステートメントは皆さんご存知だと思いますが、特殊な...

サーバー同時実行数の推定式と計算方法

最近、サーバーのストレステストを再度行う必要が出てきました。ここでは、最近学んだ見積もりスキームと見...

Linuxファイル削除後にスペースが解放されない問題の詳しい説明

序文システム領域の使用量が大きすぎて消去する必要がある場合、または特定のファイルを消去する必要がある...

要素に丸い境界線を追加する border-radius メソッド

border-radius:10px; /* すべての角は半径 10px で丸められます*/ bor...

Dockerコンテナを終了した後も実行を継続する方法

現象:イメージを実行します (例: ubuntu14.04)。 docker run -it --r...

js でシンプルなタブを実装する

タブ選択カードは、実際の Web ページで非常に頻繁に使用されます。基本的に、すべての Web ペー...

MySQLデータベースを作成し、中国語の文字をサポートする方法

まずMySQLの公式ドキュメントを見てみましょう: 5.7 {データベース | スキーマ} を作成 ...

Dockerは複数のポートマッピングコマンドを有効にします

次のように: docker run -d -p 5000:23 -p 5001:22 --name ...

MySQL デッドロック シナリオ例の分析

序文最近、MySQL で RR レベルでデッドロック問題に遭遇しました。興味深いと思ったので、調べて...

Linuxシステムの操作レベルの詳細な紹介

目次1. Linuxシステムの操作レベルの概要2. 実行レベルを確認する3. 現在のシステムの動作レ...

UDP DUP タイムアウト UPD ポート状態検出コード例

以前、単純な UDP サーバーとクライアントの例を書きましたが、その中で、自分自身をクライアントと見...

.NETCore Dockerはコンテナ化とプライベートイメージリポジトリ管理を実装します

1. Dockerの紹介Docker は Linux オペレーティングシステムの一部の機能をベースに...

JavaScript配列の組み込みメソッドの詳細な説明

目次1. Array.at() 2. Array.copyWithin() 3. 配列.entrie...