微信小程序全局变量的定义与存取

app.js里面定义全局变量

//app.js
App({
  onLaunch: function () {
    this.globalData = {
      statusBarHeight: wx.getSystemInfoSync()['statusBarHeight'],//顶部栏高度
      // "navigationStyle": "custom" 需要顶格显示的页面json文件需要加此配置
      isLogin:false
    }
  }
})

方法一、在其他页面js获取全局变量,在Page外先定义const app = getApp()

//pages/index/index.js
const app = getApp()
Page({
  data: {
    statusBarHeight: app.globalData.statusBarHeight,//从全局变量自定义顶部栏高度并赋值给当前页面变量statusBarHeight
    page_data:0,//赋值页面变量page_data=0

  },
onLoad: function (options) {
   // 页面初始化 options为页面跳转所带来的参数
console.log(options)
//发起网络请求
var that = this//不要漏了这句,把当前的状态对象存储到that变量对象中,因为this在js中是特指当前整个Page({})对象,如果中间进行其他操作this所指代的对象是会变化的

that.setData({
   statusBarHeight:200,//赋值,冒号“:”
   page_data:10//赋值
   new_data:'这是新定义的变量'// 在setData里直接设置新的参数new_data,也可以与wxml中的{{new_data}}进行数据绑定
    })
    app.globalData.statusBarHeight=300//给全局变量赋值注意这里是等于号“=”
    app.globalData.isLogin= true
    console.log(app.globalData.statusBarHeight)
  

  },

//如果wxml中需要显示变量值
// <view class="topbar" style="padding-top:{{statusBarHeight}}px">
//{{page_data}}{{new_data}}
//</view>

方法二、直接获取,跟方法一不能混用。

//pages/index/index.js
Page({
  data: {
    statusBarHeight: getApp().globalData.statusBarHeight,//

  },

下面是摘抄自简书网友的文章代码“一个好的app.js”,原文地址:https://www.jianshu.com/p/925aad432874

//app.js
App({
//全局变量
  globalData:{
    userInfo:null,
    sysInfo:null,
    windowW:null,
    windowH:null
  },
  //启动
  onLaunch: function () {
    // 获取用户信息
   this.getUserInfo();
   this.getSys();
  },
  //获取用户信息
 getUserInfo:function(cb){
    var that = this
    wx.login({
      success: function () {
        wx.getUserInfo({
          success: function (res) {
            that.globalData.userInfo = res.userInfo
            console.log(res.userInfo);
            typeof cb == "function" && cb(that.globalData.userInfo)
          }
        })
      }
    })
  },
  //获取手机信息
  getSys:function() {
    var that = this;
    //  这里要非常注意,微信的scroll-view必须要设置高度才能监听滚动事件,所以,需要在页面的onLoad事件中给scroll-view的高度赋值
    wx.getSystemInfo({
    success: function(res) {
      console.log(res.model)
      console.log(res.pixelRatio)
      console.log(res.windowWidth)
      console.log(res.windowHeight)
      console.log(res.language)
      console.log(res.version)
      console.log(res.platform)
//设置变量值
      that.globalData.sysInfo=res;
      that.globalData.windowW=res.windowWidth;
      that.globalData.windowH=res.windowHeight;
    }
    })
  }
  
})

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/weixin-global-parameter/

赞赏

微信赞赏支付宝赞赏

发表评论