Vue.js は、開発者がインタラクティブな Web アプリケーションをより効率的に構築できるようにする、人気のあるフロントエンド フレームワークです。 Vue.js を使用してプロジェクトを開発する場合、状態を保存する必要があるが再読み込みしたくない状況によく遭遇します。この記事では、この目標を達成するためのいくつかのソリューションを紹介します。
1. ブラウザーのローカル ストレージを使用する
ブラウザーのローカル ストレージとは、ページが更新または再ロードされたときにデータを保持できるように、クライアントのローカル ブラウザーにデータを保存することを指します。 HTML5 では、localStorage と sessionStorage という 2 つの機能が提供されます。データをローカル ブラウザに保存でき、次のような特徴があります。
Vue.js プロジェクトで localStorage メソッドを使用します:
var data = localStorage.getItem('key');
localStorage.setItem('key', data);
localStorage.removeItem('key');
2. Vuex の使用
Vuex は、Vue.js アプリケーションの状態管理パターンです。アプリケーションのすべてのコンポーネントの状態を一元管理し、状態の更新に一貫性があり、予測可能であることを保証するツールとルールを提供します。 Vuex を使用すると、データをグローバル状態で保存できるため、アプリケーション全体でデータにアクセスして更新できます。 Vue.js プロジェクトでこの目標を達成するには、次の手順を使用できます。
import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ state: { data: null }, mutations: { setData (state, payload) { state.data = payload; } }, actions: { setData ({commit}, payload) { commit('setData', payload); } });
this.$store.dispatch('setData', data);
computed: { userData () { return this.$store.state.data; } }
三、cookie の使用
Cookie は、クライアント側で状態を保存するためによく使用されるもう 1 つの方法です。 Cookie は通常、ユーザーの認証資格情報やその他の設定を保存するために使用されます。 Vue.js プロジェクトでは、Cookie を使用してデータを保存するには、次の手順を実行します。
npm install js-cookie --save
import Cookies from 'js-cookie'; Cookies.set('data', data);
import Cookies from 'js-cookie'; var data = Cookies.get('data');
4. IndexedDB を使用する
IndexedDB はブラウザによって提供されるネイティブ データベースであり、ブラウザ内に構造化データを保存できます。 Vue.js プロジェクトでは、次の手順で IndexedDB を使用できます:
var request = window.indexedDB.open('myDatabase', 1); request.onerror = function (event) { console.log("数据库打开失败"); }; request.onsuccess = function (event) { console.log("数据库打开成功!"); };
var request = window.indexedDB.open('myDatabase', 1); request.onerror = function(event) { console.log("数据库打开失败"); }; request.onsuccess = function(event) { var db = request.result; var transaction = db.transaction(['data'], 'readwrite'); var objectStore = transaction.objectStore('data'); var request = objectStore.put(data, 'key'); request.onerror = function(event) { console.log("数据写入失败"); }; request.onsuccess = function(event) { console.log("数据写入成功"); }; };
var request = window.indexedDB.open('myDatabase', 1); request.onerror = function(event) { console.log("数据库打开失败"); }; request.onsuccess = function(event) { var db = request.result; var transaction = db.transaction(['data'], 'readonly'); var objectStore = transaction.objectStore('data'); var request = objectStore.get('key'); request.onerror = function(event) { console.log("数据读取失败"); }; request.onsuccess = function(event) { console.log(request.result); }; }
以上がVue プロジェクトはリロードせずに保存されますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。