小程序 全局数据共享 getApp()

在小程序中,可以通过 getApp() 方法获取到小程序全局唯一的App实例 因此在App()

方法中添加全局共享的数据、方法,从而实现页面、组件的数据传值

在 app.js 文件中定义

javascript 复制代码
App({
  // 全局共享的数据
  globalData:{
    token:''
  },
  // 全局共享的方法
  setToken(token){
    // 如果想获取token,可以使用 this 的方法进行获取
    this.globalData.token = token
	// 在 App() 方法中如果想获取 App() 实例,可以通过 this 的方式进行获取
	// 不能通过 getApp() 方法获取
  }
})

使用 需要在登录页面 先 setToken

.wxml 文件

javascript 复制代码
<button type="warn" plain bindtap="login">登录</button>

.js 文件

javascript 复制代码
// getApp()方法用来获取全局位移的 App()实例
const appInstance = getApp()
Page({
  login(){
  // 不要通过 app 实例调用钩子函数
  	appInstance.setToken("aaaaaaaaaa")
 }
})

然后 再其它页面 可获取 全局存入的token

javascript 复制代码
const appInstance=getApp()
Page({
  onLoad(options) {
    console.log(appInstance)
  },
})

注意事项

1.不要再App() 方法中使用 getApp() 使用 this 就可以拿到 app实例

2.通过 getApp() 获取实例之后,不要私自调用生命周期函数

相关推荐
用户5806139393006 分钟前
前端文件下载实现深度解析:Blob与ObjectURL的完美协作
前端
Lin86669 分钟前
Vue 3 + TypeScript 组件类型推断失败问题完整解决方案
前端
coding随想9 分钟前
从零开始:前端开发者的SEO优化入门与实战
前端
前端工作日常12 分钟前
我理解的JSBridge
前端
Au_ust12 分钟前
前端模块化
前端
顺丰同城前端技术团队12 分钟前
还不会用 Charles?最后一遍了啊!
前端
BUG收容所所长13 分钟前
二分查找的「左右为难」:如何优雅地找到数组中元素的首尾位置
前端·javascript·算法
彬师傅14 分钟前
geojson、csv、json 数据加载
前端
用户527096487449014 分钟前
🔥 我与 ESLint 的爱恨纠葛:从"这破玩意儿"到"真香警告"
前端
梨子同志14 分钟前
手动实现 JavaScript 的 call、apply 和 bind 方法
前端·javascript