Vueはローカルストレージの追加、削除、変更機能を実装します

Vueはローカルストレージの追加、削除、変更機能を実装します

この記事では、ローカルストレージの追加、削除、変更を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次のとおりです。

機能性:

入力は進行中のリストに追加されます。

ダブルクリックして機能を変更します。

キャンセルするにはEscキーをクリックするか、前のコンテンツに戻ります。

Enter をクリックすると正常に変更されます。

変更フレームのフォーカスが失われると、変更は成功します。

ボタンが選択されると完了リストに入り、選択されていない場合は進行中リストに入ります。

行を削除するには、「削除」をクリックします。

次回ローカル ストレージを開いたときに、最後に追加されたファイルはそのまま残ります。

<!DOCTYPE html>
<html>
 <ヘッド>
  <メタ文字セット="utf-8">
  <タイトル></タイトル>
  <スタイル タイプ="text/css">
  *{
   パディング: 0;マージン: 0;
  }
   ul{
    リストスタイル: なし;
   }
   li{
    幅: 220ピクセル;
    高さ: 40px;
    境界線: 1px 実線ゲインズボロ;
    上マージン: 4px;
    ディスプレイ: フレックス;
    コンテンツの両端揃え: スペースの間;
    アイテムの位置を中央揃えにします。
    背景色: #6CE26C;
   }
   .del{
    右マージン: 5px;
    境界線: なし;
    幅: 20px;
    高さ: 20px;
    背景色: #008200;
   }
  </スタイル>
 </head>
 <本文>
  <div id="アプリ">
   <!-- 入力コンテンツの先頭と末尾のスペースをフィルタリングします-->
   <!-- イベントを入力 -->
   <input type="text" v-model.trim="temp" @keyup.enter="additem()"/>
   <!-- 進行中の操作の数を取得します -->
   <h3>進行中{{undolist.length}}</h3>
   <ul class="リスト">
    <!-- トラバース中のコンテンツを表示する -->
    <li class="item" v-for="元に戻すリスト内のアイテム" :key="item.name">
     <divクラス="">
      <!-- 複数選択ボックスはチェックされていない false 状態です -->
     <input type="checkbox" v-model="item.done" />
     <!-- デフォルトの状態は 0 です。ダブルクリックすると、状態は 1 になり、コンテンツは tempEdit に割り当てられます -->
     <span v-show="item.state==0" @dblclick="item.state=1;tempEdit=item.name">{{item.name}}</span>
     <!-- 入力ボックスの内容は tempEdit の値です。state=1 の場合、入力ボックスが表示されます。
     Esc をクリックすると、状態は非表示になり、内容は変更されずに元の値のままになります。
     Enterキーを押したときに状態が0の場合、入力ボックスは非表示になり、変更されたtempEditがitem.nameに割り当てられます。
     フォーカスが失われたときに状態が0の場合、入力ボックスは非表示になり、変更されたtempEditがitem.nameに割り当てられます。
      -->
     <input type="text" v-model="tempEdit" v-show="item.state==1" 
     @keyup.esc="item.state=0;tempEdit=item.name"
     @keyup.enter="item.state=0;item.name=tempEdit"
     @blur="item.state=0;item.name=tempEdit"
     />
     </div>
     <!-- 削除をクリックすると内容が削除されます -->
     <button type="button" @click="removeitem(item)" class="del">X</button>
    </li>
   </ul>
   <!-- 完了数量 -->
   <h3>完了しました {{doneList.length}}</h3>
   <ul class="リスト">
    <!-- 完了したコンテンツをトラバースして表示します-->
    <li class="item" v-for="doneList 内のアイテム" :key="item.name">
     <divクラス="">
      <!-- 複数選択ボックスは選択された状態です -->
     <input type="checkbox" v-model="item.done" />
     <!-- デフォルトの状態は 0 です。ダブルクリックすると、状態は 1 になり、コンテンツは tempEdit に割り当てられます -->
     <span v-show="item.state==0" @dblclick="item.state=1;tempEdit=item.name">{{item.name}}</span>
     <!-- 入力ボックスの内容は tempEdit の値です。state=1 の場合、入力ボックスが表示されます。
     Esc をクリックすると、状態は非表示になり、内容は変更されずに元の値のままになります。
     Enterキーを押したときに状態が0の場合、入力ボックスは非表示になり、変更されたtempEditがitem.nameに割り当てられます。
     フォーカスが失われたときに状態が0の場合、入力ボックスは非表示になり、変更されたtempEditがitem.nameに割り当てられます。
      -->
     <input type="text" v-model="tempEdit" v-show="item.state==1" 
     @keyup.esc="item.state=0;tempEdit=item.name"
     @keyup.enter="item.state=0;item.name=tempEdit;"
     @blur="item.state=0;item.name=tempEdit;"
     />
     </div>
     <!-- 削除をクリックすると内容が削除されます -->
     <button type="button" @click="removeitem(item)" class="del">X</button>
    </li>
   </ul>
  </div>
 </本文>
 <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
 <script type="text/javascript">
  var vm = 新しい Vue({
   el:"#アプリ",
   データ(){
    戻る {
     // リストリスト // getItemはローカルストレージデータを取得するために使用します。
     // || "[]" 配列リストを取得できない場合は、空の配列リストに変換します: JSON.parse(localStorage.getItem("list")|| "[]"),
     // 一時データ保存場所 temp:'',
     // 変更ボックスの一時データ保存場所 tempEdit:''
    }
   },
   方法:{
    // 追加 additem(){
     // テキストボックスが空のときに戻ります if(this.temp===""){return;}
     // 後ろに追加 this.list.push({
      名前:this.temp,
      完了:false、
      状態:0
     })
     // 一時ボックスをクリアします this.temp="";
    },
    // 削除 removeitem(item){
     // ポップアップ ボックス var flag = window.confirm ("削除してもよろしいですか?");
     if(フラグ){
      // 条件を満たす要素のインデックス値を検索します var ind=this.list.findIndex(value=>value.title===item.title);
      // splice は ind から 1 つを削除します this.list.splice(ind,1);
     }
    }
   },
   計算:{
    // 完了リストと未完了リストのデータを、 // 未完了 undolist(){ を計算して計算します。
     // 配列をフィルターする関数。返される結果が true の場合、現在走査されているデータが保持されます。 // それ以外の場合はフィルター処理されます。 return this.list.filter(item=>!item.done);
     
    },
    // 完了 doneList(){
     this.list.filter(item=>item.done) を返します。
    }
   },
   時計:{
    "リスト":{
     ハンドラ(){
      // setItem はローカルデータを設定します // JSON.stringify は js オブジェクトを json 文字列に変換します // JSON.prase は文字列を js オブジェクトに変換します localStorage.setItem("list",JSON.stringify(this.list))
     },
     深い:真、
    }
   }
  })
 </スクリプト>
</html>

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

以下もご興味があるかもしれません:
  • Vuexとストレージを組み合わせてユーザー情報のローカルストレージを実現
  • vuex-persistedstate を使用して vuex ローカル ストレージを実装する
  • Vue ブラウザのローカル ストレージの問題の概要
  • Vue でフォントを変更し、オンライン フォント ライブラリを参照せずにローカルにフォントを保存する方法
  • Vueはトークンを生成し、ローカルストレージに保存します
  • Vue でローカル ストレージをリアルタイムで監視する方法

<<:  MySQLサブクエリでorder byが効かない問題の解決方法

>>:  CSS におけるスタックコンテキストの具体的な使用法

推薦する

MySQL Innodb インデックス メカニズムの詳細な紹介

1. インデックスとは何ですか?インデックスは、ストレージ エンジンがレコードをすばやく検索するため...

MySQL ビュー管理ビューの例の詳細説明 [追加、削除、変更、クエリ操作]

この記事では、例を使用して MySQL ビューの管理ビュー操作について説明します。ご参考までに、詳細...

Linux ファイル管理コマンド例の分析 [権限、作成、削除、コピー、移動、検索など]

この記事では、Linux ファイル管理コマンドについて例を挙げて説明します。ご参考までに、詳細は以下...

MySQLデータベースにパスワードを入力した後にフラッシュバックする問題の解決策

パスワード入力後にMySQLデータベースがクラッシュする問題と解決策1 ケースの説明最近、基本的な機...

MySql はデータを正常に挿入しますが、[Err] 1055 エラーが報告されます。解決策

1. 質問:最近、挿入操作を行っています。MySQLのバージョンは5.7です。挿入は成功しますが、エ...

Nodejs がイントラネット侵入サービスを実装

目次1. LAN内のプロキシ2. イントラネットの浸透イントラネット侵入とは何ですか?橋プロキシサー...

Docker-Composeコマンドの使い方の詳しい説明

Docker コンテナはさまざまな方法で管理およびデプロイできます。 Docker コマンドを直接使...

IE6、IE7、IE8 で CSS3 の丸い角と影のスタイルをサポートする

CSS3 の角丸や影の効果を使ったページを作りたいのですが、IE ブラウザでは対応していません。こ...

MySQL でパーティション分割後にクエリを実装するために MRG_MyISAM (MERGE) を使用する例

大量のデータベース データを最適化することは非常に高度な科学であり、開発者が習得する必要がある専門的...

MySQL 8.0 のインストール中に発生した 3 つの小さなエラーの概要

序文これまで当社ではMySQLの5.7シリーズを使用していましたが、バージョン8.0のリリースに合わ...

SSM VUE Axios の詳細な説明

目次SQL ログを表示するにはどうすればいいですか? ? SpringMVC でのパラメータ渡しの説...

MySQL 8.0.12 のインストールと設定方法のグラフィック チュートリアル (Windows10)

この記事は、参考のためにMySQL 8.0.12のインストールグラフィックチュートリアルを記録してい...

RGBA の「a」は何を意味するのでしょうか? CSS RGBA カラー ガイド

RGBAは色の値と透明度を設定できるCSSカラーです以下は、rgba() を使用して白色を 50% ...

ページを更新せずにフォームを送信するには iframe を使用します

そこで、この問題を解決するために埋め込みフレームワークを導入します。具体的な原則は、フォームがデータ...

MySQL の日付と時刻の加算と減算のサンプル コード

目次1.MySQLは時間間隔を加算または減算します2. 日付を減算する最近、MySQL を見直してい...