Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to use the globalData of Mini Program

2025-01-17 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)05/31 Report--

本篇内容介绍了"小程序的globalData怎么用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

小程序中,除了每个页面有自己的 data,还有个全局数据存储地方:globalData,获取方式如下:

let globalData = getApp().globalData

实际业务代码中总会遇到这种情况:写着写着发现需要用全局数据,但是不能直接就在当前函数里直接写上面的一段代码,因为要和别的函数共用,所以返回 js 文件顶部添加一段代码,再返回刚刚断掉的地方继续写,类似这样:

// 省略12行let globalData = getApp().globalData// 省略15行Page({ data: { ... } //.. 省略863行 onButtonTap(e) { // ... let myData = globalData.myData // ... }})

经过这么一折腾,可能刚刚的代码思路都没了。那能不能直接在想用的函数里直接方便的获取这个 globalData 呢?比如:

// 省略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 是类型判断函数。简单实现了多种操作 globalData 的方法,详细见注释。

挂载到 this

函数有了,那么怎么挂在到小程序页面的 this 中呢,看过前几篇可能知道,要对小程序原有的 Page 函数进行改造。

有两种方式,一种是直接添加到 config 里:

var originPage = Pagevar global = require('../utils/global')function MyPage(config) { // ... config.$global = global // ... originPage(config)}function page (config) { return new MyPage(config)}

或者在代理后的 onLoad 函数里定义:

var originPage = Pagevar 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)}"小程序的globalData怎么用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report