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 におけるスタックコンテキストの具体的な使用法

推薦する

Linux Samba サーバーの超詳細なインストールと構成 (問題解決付き)

目次Samba サーバーの紹介Samba サーバー コンポーネントSamba サーバー関連の設定ファ...

ネイティブ JavaScript を使用した Web 計算機の実装

この記事では、参考までに、計算機のWebバージョンを実装するためのJavaScriptの具体的なコー...

HTML コード例: ハイパーリンクの詳細な説明

ハイパーリンクは、Web サイト上のすべてのページがハイパーリンクで接続され、ページ間を移動できるた...

Dockerfile を使用して Docker イメージをカスタマイズする方法

Dockerfile を使用したイメージのカスタマイズイメージのカスタマイズとは、実際には各レイヤー...

MySQL ステートメントに一重引用符またはバックスラッシュを含む値を挿入する方法

序文この記事では主に、シングルクォートやバックスラッシュを含む値を挿入するMySQLステートメントに...

Vue を使用して 2 つのデータ セットの違いを比較する視覚化コンポーネントの詳細な説明

目次必要:要点:これまでの要点に従って、コンポーネントのプロパティを確立できます。コンポーネントの基...

ブラウザの互換モードでボタン内のテキストが垂直方向に中央揃えにならない問題について簡単に説明します。

XML/HTML コードコンテンツをクリップボードにコピー<ボタンスタイル= "カ...

フレックスインサイドボタンの垂直方向の中央揃えが中央揃えにならない問題の解決方法

問題の説明ボタンのスタイルはアイコン + テキストです。フレックス レイアウトを使用して垂直方向に中...

Vant+postcss-pxtoremはブラウザ適応機能を実装します

Remレイアウトの適応Vant のスタイルでは、デフォルトで px を単位として使用します。rem ...

Centos7のFirewalldファイアウォールの基本コマンドの詳細な説明

1. Linuxファイアウォールの基礎Linux ファイアウォール システムは主にネットワーク層で動...

VMware vSphere 6.5 インストール チュートリアル (画像とテキスト)

vmware vSphere 6.5 は vSphere ソフトウェアのクラシック バージョンであ...

WeChatアプレットでのwxsファイルの素晴らしい使い方をいくつか紹介します

目次序文応用フィルタードラッグファイル間での参照の受け渡しwxsはjsロジック層にパラメータを渡しま...

ReactプロジェクトでのTypeScriptの実装

目次1. はじめに2. 使用方法ステートレスコンポーネントステートフルコンポーネント制御コンポーネン...

Vueリストデータを削除した後、ページを自動的に更新する方法と更新方法の詳細な説明

問題の説明:フロントエンドがデータの一部を削除したり、新しいデータを追加したりすると、バックエンドの...