VueはTodoListの例をカプセル化し、ブラウザのローカルキャッシュのアプリケーションを実装します。

VueはTodoListの例をカプセル化し、ブラウザのローカルキャッシュのアプリケーションを実装します。

この記事では主に、Vue で TodoList をカプセル化するケースと、ブラウザのローカル キャッシュのアプリケーション実装について紹介し、次のように共有します。

ここに画像の説明を挿入

シンプルな Todolist の例が Vue を使用してカプセル化されています。ブラウザのローカル キャッシュ テクノロジも追加されています。

ブラウザのローカルキャッシュ:

  • 前提: 通常、定義した変数や Vuex によって保存されたデータは、ブラウザを更新すると失われるため、履歴記録の効果は得られません。ただし、ブラウザ キャッシュを使用すると、この問題を解決できます...
  • ブラウザ キャッシュは、sessionStorage と localStorage の 2 種類に分かれています。2 つのプロトタイプ チェーンは次のとおりです。

ここに画像の説明を挿入

ここに画像の説明を挿入

プロトタイプチェーンは基本的に同じであることがわかりますが、唯一の違いは

  • localStorage は永続的なローカル キャッシュとして機能します。手動で削除するかクリアしない限り、ブラウザー内に常に存在します。
  • sessionStorage はセッション キャッシュに使用されます。そのライフ サイクルは現在のブラウザー セッションにのみ存在します。ブラウザーを閉じると、情報は失われます。ただし、ページを更新するだけであれば、データは保存されたままになります。

この例では、sessionStorage が使用され、そのための小さなパッケージが作成されます。

定数ストレージ = {
	set(キー, 値){
		window.sessionStorage.setItem(キー、JSON.stringify(値));
	},
	get(キー){
		JSON.parse(window.sessionStorage.getItem(key)) を返します。
	},
	削除(キー){
		window.sessionStorage.removeItem(キー);
	}
}

デフォルトのストレージをエクスポートします。

コード例:

<テンプレート>
	<div class="todo">
		<ヘッダー>
			<input type="text" placeholder="Enter..." v-model="キーワード" @keydown.enter="handleList">
			やることリスト
		</ヘッダー>
		<!-- 進行中 -->
		<h4>進行中...{{dolistNumber}}</h4>
		<template v-for="(item, index) in dolist" :key="index">
			<div class="dolist" v-if="!item.checked">
				<label :for="index +'l'">
					<input type="checkbox" v-model="item.checked" :id="index +'l'" @change="handleChecked">
					{{item.title}}
				</ラベル>
				<span @click="cancalDo(index)">X</span>
			</div>
		</テンプレート>

		<!-- 完了 -->
		<h4>完了しました...{{dolist.length - dolistNumber}}</h4>
		<template v-for="(item, index) in dolist" :key="index">
			<div class="dolist" v-if="item.checked">
				<label :for="index +'ll'">
					<input type="checkbox" v-model="item.checked" :id="index +'ll'" @change="handleChecked">
					{{item.title}}
				</ラベル>
				<span @click="cancalDo(index)">X</span>
			</div>
		</テンプレート>
	</div>
</テンプレート>

<スクリプト>
	'../storage.js' からストレージをインポートします。
	エクスポートデフォルト{
		名前: "todoList",
		データ() {
			戻る {
				キーワード: "", // 入力オプション dolist: [],
			}
		},
		計算:{
			リスト番号(){
				this.dolist.filter(item => item.checked === false).length を返します。
			}
		},
		メソッド: {
			ハンドルチェック(){
				// ステータスを変更した後に更新します storage.set('dolist', this.dolist);
			},
			ハンドルリスト() {
				if (this.keyword !== "") {
					this.dolist.push({
						タイトル: this.keyword,
						チェック済み: false、
					});
					this.keyword = "";
					ストレージを設定します('dolist', this.dolist);
				}
				
			},
			cancalDo(インデックス) {
				// これを削除します this.dolist.splice(index, 1);
				ストレージを設定します('dolist', this.dolist);
			}
		},
		マウントされた(){
			dolist = storage.get('dolist'); とします。
			if(dolist){
				this.dolist = dolist;
			}
		},

	}	
</スクリプト>

<スタイル>
	.todo {
		マージン: 400px 自動;
		最小高さ: 300px;
		幅: 800ピクセル;
		背景色: #eee;
	}

	.todo ヘッダー {
		位置: 相対的;
		テキスト配置: 中央;
		高さ: 60px;
		行の高さ: 60px;
		フォントサイズ: 20px;
		下境界線: 2px 実線 #fff;
	}

	.todo ヘッダー入力 {
		位置: 絶対;
		左: 40px;
		上位: 50%;
		変換: translateY(-50%);

		アウトライン: なし;
		行の高さ: 30px;
		境界線の半径: 15px;
		左パディング: 30px;
		境界線: 1px 実線 #999;
		フォントサイズ: 16px;
		幅: 100ピクセル;
		遷移: すべて .6 秒線形。
	}

	.todo ヘッダー入力:フォーカス {
		幅: 200ピクセル;
	}

	.dolist {
		パディング: 20px;
		フォントサイズ: 16px;

	}

	.dolist ラベル {
		カーソル: ポインタ;
	}

	.dolist入力{
		右マージン: 10px;

	}

	.dolist span:最後の子 {
		フロート: 右;
		境界線: 1px の灰色
		背景色: #999;
		色: #fff;
		境界線の半径: 50%;
		パディング: 5px;
	}

	h4 {
		パディング下部: 20px;
		テキスト配置: 中央;
	}
</スタイル>

Vue で TodoList をカプセル化するケースとブラウザローカルキャッシュのアプリケーション実装についての記事はこれで終わりです。Vue TodoList に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vuex のシンプルな todolist の例の詳細な説明
  • Vue は TodoList から親子コンポーネントの通信を学習します
  • Vuejs はシンプルな todoList 関数とコンポーネントのサンプルコードを実装します
  • vue.js の todoList プロジェクトの例
  • VueのTodoListケースの詳しい説明

<<:  mysqlパラメータsql_safe_updatesを使用して更新/削除範囲を制限する方法の詳細な説明

>>:  Linux システムのパフォーマンスを分析するための top コマンドの詳細な説明

推薦する

HTMLページのネイティブVIDEOタグはダウンロードボタン機能を隠します

Web プロジェクトを作成しているときに、紹介ビデオが別にある紹介ページに遭遇しました。この短いビデ...

HTML テーブル マークアップ チュートリアル (15): テーブル タイトル

<br />このタグを使用すると、表のタイトルを直接追加し、タイトル テキストの配置プロ...

HTML の相対パス (Relative Path) と絶対パス (Absolute Path) の詳細な理解

私は 1 年以上 Java Web 開発に携わっており、HTML または JSP ページの作成は避け...

Dockerコンテナ間の通信と外部ネットワーク通信の操作

コンテナ間の通信1. コンテナのネットワーク共有このモードの Docker コンテナはネットワーク ...

Vue3における7種類のコンポーネント通信の詳細

目次1. Vue3コンポーネント通信方式2. Vue3通信の使い方2.1 小道具2.2 $エミット2...

フロントエンド開発者のための HTML 入門

1 HTML入門1.1 初めてのコード体験、最初のウェブページの作成XML/HTML コードコンテン...

Vue で wangeditor リッチテキスト編集を使用する際の問題

wangEditor は、JavaScript と CSS に基づいて開発された Web リッチ テ...

JavaScript を使用してタイムラインとアニメーション効果を実装するためのサンプル コード (フロントエンドのコンポーネント化)

目次コードのクリーニングJavaScript の「フレーム」 「フレーム」の実装方法1. 間隔を設定...

Linux jdk のインストールと環境変数の設定チュートリアル (jdk-8u144-linux-x64.tar.gz)

最初にsudo suコマンドを使用して root アカウントに切り替えることをお勧めします。そうしな...

vue3.0+vant3.0の迅速なプロジェクト構築の実装

目次1. プロジェクトの構築2. Vue3 体験 + Vant 紹介2020年9月18日にvue.j...

Linux Tensorflow2.0のインストール問題を解決する

conda アップデート conda pip で tf-nightly-gpu-2.0-previ...

MySQLの行ロックとテーブルロックの意味と違いの詳細な説明

1. はじめに行ロックとテーブルロックの違いは面接で頻繁に出てくるはずです。MySQL のロックにつ...

JTAを実装するためにAtomikosと組み合わせたTomcatについて

最近、プロジェクトは環境を切り替え、WebLogic を Tomcat に置き換えました。途中で発生...

CSS最適化スキルの自己実践体験

1. CSS スプライトを使用します。利点は、CSS で使用される小さな画像を 1 つの大きな画像に...

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

実際には、対応する記述方法は多数ありますが、最も一般的なのは object + embedded で...