簡単に小さいプログラムglobal Dataのあれらの事を話します。
2887 ワード
私は厳冬の下で凍った土を掘り起こし、暗い塹壕の中で跳びはねました。私は命をかけて家の石板を守っています。焦土の匂いがする廃墟の下で永眠しています。
プログラムには、各ページに独自のデータがあるほか、グローバルデータストアがあります。globalDataの取得方法は以下の通りです。
thisにマウント
関数がありましたが、どうやって小さいプログラムのページにかけられたthisの中にありますか?前のページを見たら分かるかもしれません。小さいプログラムの元のPage関数を改造します。
二つの方法があります。一つは直接configに追加することです。
このような方法では、モバイトプログラムの内部にthis.$util,this.$navigateなどの自分の業務に適したツール方法をパッケージ化するなど、多くの汎用的なウィジェットページを定義することができます。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
プログラムには、各ページに独自のデータがあるほか、グローバルデータストアがあります。globalDataの取得方法は以下の通りです。
let globalData = getApp().globalData
実際の業務コードにはいつもこのような状況があります。グローバルデータを使う必要があると書かれていますが、直接に現在の関数に上のコードを書くことはできません。他の関数と共有するため、jsファイルの先頭に戻ってコードを追加して、まだ壊れたところに戻って書き続けます。
// 12
let globalData = getApp().globalData
// 15
Page({
data: { ... }
//.. 863
onButtonTap(e) {
// ...
let myData = globalData.myData
// ...
}
})
このように苦労して、コードの考えがなくなったかもしれません。このglobal Dataを直接使いたい関数で簡単に入手できますか?たとえば:
// 27
Page({
data: { ... }
//.. 863
onButtonTap(e) {
// ...
let myData = this.globalData.myData
// ...
}
})
あるいは別の方法でmyDataを取得して設定します。
let myData = this.$global('myData')
// ...
this.$global('myData', 2)
global方法を実現します
function global(name, value) {
var globalData = getApp().globalData
var data = {}
// this.$global()
if (arguments.length === 0) {
return globalData
}
// this.$global('myData')
if (arguments.length === 1) {
if (is.string(name)) {
return globalData[name]
}
// this.$global({
// name: 1
// })
if (is.object(name)) {
data = name
}
}
// this.$global('myData', 2)
if (arguments.length === 2) {
data[name] = value
}
return extend(data, data)
}
このうち、is.stringとis.objectはタイプ判定関数です。簡単に複数の操作global Dataを実現しました。詳細はコメントを参照してください。thisにマウント
関数がありましたが、どうやって小さいプログラムのページにかけられたthisの中にありますか?前のページを見たら分かるかもしれません。小さいプログラムの元のPage関数を改造します。
二つの方法があります。一つは直接configに追加することです。
var originPage = Page
var global = require('../utils/global')
function MyPage(config) {
// ...
config.$global = global
// ...
originPage(config)
}
function page (config) {
return new MyPage(config)
}
あるいは代理後のonLoad関数で定義します。
var originPage = Page
var global = require('../utils/global')
function MyPage(config) {
this.watch = config.watch
this.lifetimeBackup = {
onLoad: config.onLoad
}
config.onLoad = function(options) {
this.$global = global
//
this.lifetimeBackup.onLoad.call(this, options)
}
// ...
originPage(config)
}
締め括りをつけるこのような方法では、モバイトプログラムの内部にthis.$util,this.$navigateなどの自分の業務に適したツール方法をパッケージ化するなど、多くの汎用的なウィジェットページを定義することができます。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。