千家信息网

微信小程序中变量和作用域怎么定义

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,今天小编给大家分享一下微信小程序中变量和作用域怎么定义的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一
千家信息网最后更新 2025年02月01日微信小程序中变量和作用域怎么定义

今天小编给大家分享一下微信小程序中变量和作用域怎么定义的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一,全局变量

在app.js里的变量和方法是全局的。

//app.jsApp({  onLaunch: function () {    // 展示本地存储能力    var logs = wx.getStorageSync('logs') || []    logs.unshift(Date.now())    wx.setStorageSync('logs', logs)    // 登录    wx.login({      success: res => {        // 发送 res.code 到后台换取 openId, sessionKey, unionId      }    })    // 获取用户信息    wx.getSetting({      success: res => {        if (res.authSetting['scope.userInfo']) {          // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框          wx.getUserInfo({            success: res => {              // 可以将 res 发送给后台解码出 unionId              this.globalData.userInfo = res.userInfo              // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回              // 所以此处加入 callback 以防止这种情况              if (this.userInfoReadyCallback) {                this.userInfoReadyCallback(res)              }            }          })        }      }    })  },  globalData: {    userInfo: null,    basePath: 'http://127.0.0.1:8086'  }  })

在其他页面上,可以通过getApp()获取到里面的方法和变量,console出来后:

如果要拿到我们提前设定的basePath,我们可以这样:

var app=getApp();var basePath = app.globalData.basePath;

获取用户的登录信息或者其他方法亦是如此;

二,局部页面内的数据交互

局部页面上的所有数据,都源于js内的data对象:

在页面上,可直接使用data内的数据;

赋值:

  areaChange:function(e){    //这里获取到了数组角标    console.log(e.detail.value)    var index1 = e.detail.value    this.setData({      index: index1    })    // console.log("地区:" + this.data.areaListArray[index1])    console.log(this.data.areaList[index1])    console.log(this.data.areaIdList[index1])  }

在方法内,可以直接使用this.setData()定义变量并赋值,只有这样定义的变量能在整个页面内使用。

onLoad: function (options) {    var that = this;    var app=getApp();    console.log(app);    var basePath = app.globalData.basePath;    wx.request({      method:"GET",      url: basePath +'/area/getAreaByLevel?level=1',      success: function (res) {        console.log(res);        var areaListArray = [];        var areaPkIdArray = [];        for(var index in res.data.data){          areaListArray.push(res.data.data[index].area)          areaPkIdArray.push(res.data.data[index].pkId)        }        that.setData({          // projectList : res.data.data.data,          // fileUrl: res.data.data.fileSystem          areaList: areaListArray,          areaIdList: areaPkIdArray        })            },      fail: function (res) {        console.log(res);      }    })    },

如果有this指向不明的,可先将this赋值给其他变量,再进行使用。

本例中是将this赋值给了that,然后再使用的。

以上就是"微信小程序中变量和作用域怎么定义"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

0