WeChatアプレットにおけるデータ保存実装方法

WeChatアプレットにおけるデータ保存実装方法

グローバル変数 globalData

ミニプログラムが最初に作成されると、app.js ファイルの App メソッドに渡されるオブジェクトに、globalData パラメータがデフォルトで追加されます。すべてのページで、getApp メソッドを使用して、App メソッドによって渡されたオブジェクトを取得し、その中の globalData を取得できます。

const App = getApp();
定数 openId = App.globalData.openId;
App.globalData.openId = 1;
App.globalData.openId を削除します。

globalData の値はオブジェクトであり、オブジェクトと同じ方法で呼び出すことができます。 (globalData は必ずしもこの名前で呼ばれるわけではありません)

ページプライベート変数データ

各ページの js ロジック レイヤー ページは、オブジェクトを Page メソッドに渡します。データの値は、通常、現在のページの変数値を格納するために使用されます。その主な目的は、setData インターフェイスを介してビュー レイヤーと対話し、wxml ビュー レイヤーの表示コンテンツを変更することです。

データの値をビューレイヤーに渡す必要がない場合は、setData を使用するのではなく、代わりにオブジェクト操作を使用することをお勧めします。パフォーマンスを効果的に節約できます。
ページが初期化されると、データ内のデータがビュー レイヤーと対話します。さらに処理を進めると、オブジェクトに localData を追加して、現在のページに必要な変数を具体的に保存することもできます。

ページ({
 データ: {
  オープンID: 123
 },
 ローカルデータ: {
  タイムスタンプ: Date.now()
 }
})
this.setData({
 オープンID: 321
})
this.data.openId = 321;
this.localData.timeStamp = Data.now();

ストレージ

ストレージは、グローバル変数 globalData と同様に、ミニプログラムで非常に一般的な保存方法です。特定のページに限定されず、wx が提供するインターフェースを通じてどこからでも値を取得できます。

データは長期間保存でき、ログアウトして再度ログインしても消えないのが利点です。 (上限保存容量10M)
欠点は、非同期動作のため、各アクセスに比較的長い時間がかかることです。
wx は、追加、削除、変更、およびチェック インターフェイスを提供します (追加と変更は両方とも設定インターフェイスです)。以下は、データを保存する例です。

非同期ストレージ(デバイスのパフォーマンスによっては、実際にどれくらいの期間保存されるかはわかりません)

wx.setStorage({
 キー: 'キー',
 データ: '値',
 成功: res => {
  ...
 }
})
// サポートプロミス
wx.setStorage({キー: 'キー', データ: '値'})
 .then(res => {
  ...
 })

同期ストレージ(ブロッキングが発生します)

wx.setStorageSync('キー', '値')
...

ファイルストレージ fileSysteManager

fileSysteManager(以下、fs)は、テキストや画像データをファイルの形式でローカルに保存することができます。保存制限​​は10M(以前は200Mだったと記憶していますが、後で資料で10と見ました)。長期間保存され、削除しない限りミニプログラムのデータは消えません。

書く:

定数 fs = wx.getFileSystemManager();
fs.writeFile({
  ファイルパス: `${wx.env.USER_DATA_PATH}/_l${fileName}.txt`,
  データ: JSON.stringify(データ),
  エンコーディング: 'utf8'、
  成功(res) { ... }
})
  • filePath の env.userDatapath は、wx によって現在のプログラムに割り当てられたデフォルトのスペースです。コーダーは、その下にフォルダーを作成したり、ファイルを追加したりできます。
  • fileName はデータを保存するときのファイル名です。
  • data は保存されるデータであり、画像である場合もあります。
  • エンコーディング: エンコーディング形式。データが画像の場合はバイナリに調整できます。

読む

データにアクセスするときは、ファイル名と保存場所に注意してください。

fs.readFile({
  ファイルパス: `${wx.env.USER_DATA_PATH}/_l${fileName}.txt`,
  エンコーディング: 'utf8'、
  位置: 0,
  成功(res) {
 JSON.parse(res.data) 
  }
})

取り除く

fs.unlink({
  ファイルパス: `${wx.env.USER_DATA_PATH}/_l${fileName}.txt`,
  エンコーディング: 'utf8'、
  成功(res) {
 ...
  }
})

すべての fs 操作は非同期なので、処理ロジックに注意してください。

WeChatミニプログラムでのデータストレージの実装に関するこの記事はこれで終わりです。より関連性の高いミニプログラムのデータストレージコンテンツについては、123WORDPRESS.COMで以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WeChatミニプログラム:データの保存、値の転送、値の取得の詳細な説明
  • WeChatアプレットのデータ保存と値の取得の詳細
  • WeChatアプレットのローカルデータ保存例の詳細な説明
  • WeChatアプレット開発データ保存パラメータ転送データキャッシュ
  • WeChatアプレットのデータストレージとDjangoおよびその他のサービスがリクエストを送信する

<<:  mysql charset=utf8 本当に意味が分かりますか

>>:  Nginxサービス500:内部サーバーエラーの原因の1つ

推薦する

Vue は Websocket カスタマー サービス チャット機能を実装します

この記事では主に基本的なチャットの実装方法を紹介します。今後は絵文字や写真のアップロードなどの機能も...

CSS3 @mediaの基本的な使い方のまとめ

//文法: @media mediatype and | not | only (メディア機能) ...

MySQL マスタースレーブレプリケーションと読み取り書き込み分離の詳細な説明

記事マインドマップマスター/スレーブ レプリケーションと読み取り/書き込み分離を使用する理由は何です...

HTMLとリソースがどのように読み込まれるかを理解します

このブログのすべてのコンテンツは、クリエイティブ コモンズ ライセンスの下でライセンスされています。...

Mysql Explainコマンドの使用と分析

mysql explain コマンドは、MySQL がインデックスを使用して選択ステートメントを処理...

4 つの主要な SQL ランキング関数 ROW_NUMBER、RANK、DENSE_RANK、NTILE の使用方法の紹介

1. ROW_NUMBER()定義: ROW_NUMBER() 関数は、select によってクエリ...

jQueryは居住地を選択するためのドロップダウンボックスを実装します

居住地を選択するためのドロップダウンボックスをjQueryで実装するための具体的なコードは参考までに...

React-Native スクリーンショットコンポーネント react-native-view-shot の紹介と使い方のまとめ

目次1. 現象2. 解決策3. 要約: 1. 現象1. 要件: 特定の表示ページをキャプチャしてアル...

フロートとBFCをクリアするCSSメソッド

イギリスBFC: ブロック書式設定コンテキストBFCレイアウトルール内箱は縦方向に次々に配置されます...

アコーディオンセカンダリメニューを実装するためのjQueryプラグイン

この記事では、jQueryプラグインを使用してアコーディオンセカンダリメニューを作成します。具体的な...

nginx プロキシでの複数の 302 応答の解決策 (nginx Follow 302)

proxy_intercept_errors と recursive_error_pages を使...

CSS ブラウザ互換性の問題に対する 4 つの解決策

フロントエンドは、技術が急速に進化するだけでなく、知っておくべき事柄が多すぎるという理由で大変な仕事...

ソフトウェア テスト - MySQL (VI: データベース関数)

1.MySQL関数1. 数学関数PI() # 円周率 (pi) の値を返します。デフォルトの小数点...

WeChatアプレットのスクロールビューが左右連動効果を実現

WeChatアプレットはスクロールビューを使用して左右のリンクを実現します。参考までに、具体的な内容...

CSS の inline-block の最小幅値の詳細な説明

序文最近、私は夜に時間を取って「CSS World」という本を読んでいます。この本は非常に興味深く、...