微信小程序设置全局变量

为了提高程序的可用性我们在做项目的时候一定要设置全局变量


微信小程序里面有个app.js,我们可以在这个里面设置全局变量,

globalData:{
    userInfo:null,
    username1:"woshihaiyong168"
}


在其他.js中引用

  var testuname = getApp().globalData.username1;
  console.log(testuname)


这样就提高了代码的可用性!!!

微信小程序设置全局变量是一种常见的做法,用于在多个页面和组件之间共享数据。以下是几种常见的方法来设置全局变量: ### 方法一:通过 `app.js` 定义全局变量 微信小程序提供了一个全局对象 `globalData`,可以在 `app.js` 文件中定义它,并在小程序的各个页面中访问。 1. **定义全局变量** 在 `app.js` 文件中,定义 `globalData` 属性来存储全局变量。例如: ```javascript // app.js App({ globalData: { userInfo: null, sysInfo: null, windowW: null, windowH: null } }); ``` 2. **在页面中使用全局变量** 在页面的 JavaScript 文件中,可以通过 `getApp()` 方法获取小程序实例,并访问 `globalData` 中的变量。 ```javascript // pages/index/index.js const app = getApp(); Page({ onLoad() { console.log(app.globalData.userInfo); // 访问全局变量 } }); ``` 3. **修改全局变量** 可以直接通过 `globalData` 修改变量值。 ```javascript const app = getApp(); Page({ onLoad() { app.globalData.userInfo = { name: '张三', age: 25 }; // 修改全局变量 } }); ``` ### 方法二:使用本地存储 如果需要持久化存储某些全局变量,可以使用微信小程序的本地存储 API,例如 `wx.setStorageSync` 和 `wx.getStorageSync`。 1. **设置全局变量** ```javascript wx.setStorageSync('userInfo', { name: '张三', age: 25 }); ``` 2. **获取全局变量** ```javascript const userInfo = wx.getStorageSync('userInfo'); console.log(userInfo); ``` ### 方法三:使用全局变量管理库 如果项目较为复杂,可以考虑使用状态管理库(如 `MobX` 或 `Redux`)来管理全局变量。这些库提供了更强大的状态管理功能,适合大型项目。 1. **安装和配置 MobX** - 安装 `MobX` 和 `mobx-miniprogram`: ```bash npm install mobx mobx-miniprogram --save ``` - 创建一个 `store.js` 文件来定义状态: ```javascript // store.js import { observable, action } from 'mobx'; class Store { @observable userInfo = null; @action setUserInfo(userInfo) { this.userInfo = userInfo; } } const store = new Store(); export default store; ``` - 在 `app.js` 中引入 `store`: ```javascript // app.js import store from './store'; App({ store, onLaunch() { // 初始化逻辑 } }); ``` - 在页面中使用 `store`: ```javascript // pages/index/index.js import { observer } from 'mobx-miniprogram'; const Page = require('../../utils/observer').Page; Page({ data: { userInfo: null }, onLoad() { const app = getApp(); this.setData({ userInfo: app.store.userInfo }); } }); ``` ### 总结 通过 `app.js` 定义 `globalData` 是最简单且常用的方法,适用于小型项目或简单的全局数据共享需求。如果需要持久化存储,可以使用本地存储 API。对于复杂的项目,建议使用状态管理库来更好地管理全局变量
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值