一,全局变量

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

//app.js
App({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 发送给后台解码出 unionIdthis.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.valuethis.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.fileSystemareaList: areaListArray,areaIdList: areaPkIdArray})},fail: function (res) {console.log(res);}})},

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

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

微信小程序中的变量和作用域相关推荐

  1. 微信小程序中this指向作用域问题this.setData is not a function报错

    在微信小程序中我们一般通过以下方式来修改data中的数据 this.setData({index1: e.detail.value}) 比如在函数里面修改数据 bindFaChange1: funct ...

  2. 微信小程序中如何使用setData修改数组或对象中的某一参数

    本人也是刚开始接触微信小程序,在微信小程序中经常会遇到修改数组中某一项的值,比如array[0]或者是对象中object.item的值.这些值在微信小程序中都需要使用一个名为setData的方法,而这 ...

  3. 关于微信小程序中时间预约的简单实现

    关于微信小程序中时间预约的简单实现 1. js中定义获取日期函数.日期点击事件 2. 在data中定义数组等变量 3. onLoad调用函数并保存回data 4. wxml展示 5. 页面监控函数on ...

  4. 微信小程序中background-attachment:fixed兼容问题

    前提 在微信小程序的页面中使用了background-attachment:fixed;属性,在安卓机型中适用,但在苹果机型中失效了,导致背景图样式没有固定. 原因 固定背景导致重绘的成本很高,在苹果 ...

  5. Canvas 动画引擎解析与微信小程序中的应用

    点击观看大咖分享 抗击疫情,腾讯云在行动.在开发微信小程序的过程中,我们经常需要展现一些图形和图表.目前市面上有好几款常用的图形库,在这些图形库的底层都有渲染引擎在支撑. ZRender 是其中一款非 ...

  6. 微信小程序中this.setData is not a function报错问题

    微信小程序中this.setData is not a function报错问题 新手在编写小程序时经常会遇到的一种错误. 新手在编写小程序时经常会遇到的一种错误. 在小程序中,通常我们用setDat ...

  7. 黑科技:轻松实现JS与微信小程序中的多线程

    前言 众所周知,js是单线程的去跑代码,如果使用一个较长时间的循环来执行代码,浏览器就会卡死,直到js执行完毕,用户体验极差:因此对于较长时间的代码块,最好使用多线程去执行,关于这一点网上说可以用De ...

  8. 在微信小程序中提交form表单

    怎么在微信小程序中提交form表单 发布时间:2021-04-07 16:26:31 来源:亿速云 阅读:1229 作者:Leah 栏目:web开发 活动:亿速云新用户活动,各类服务器大降价,满足绝大 ...

  9. 微信小程序中的vuex(MobX)

    相信大家可能在vue项目中通过vuex来实现各种项目的数据的存储,以及实现多组件,多页面之间的通信,然后,后面开始接触小程序开发,以后站在vue角度上很好解决的问题,在微信小程序中就犯了难,如果想要了 ...

最新文章

  1. 各系统QT安装ROS后不显示src问题
  2. 《JAVA练习题目7》 定义一个素数生成器类PrimeGenerator,用于生成给定区间内的所有素数。(类PrimeGenerator都由类Main代替)
  3. assign 可以修饰对象吗
  4. 怎么通俗的理解Netty呢?
  5. python程序设计丁亚涛课后答案_python程序设计丁亚涛版课后答案
  6. Verilog的数据流、行为、结构化与RTL级描述
  7. Python高级特性:列表生成式
  8. php header会重定向吗,php – 可以依靠header()重定向来结束程序流吗?
  9. ZYNQ PS端输出无效时钟供PL使用
  10. Git tag常用命令分享
  11. 《大型网站技术架构》阅读笔记
  12. Spring Boot3.0正式发布及新特性解读
  13. import pmdarima as pm时报错ModuleNotFoundError: No module named ‘statsmodels‘
  14. Java正则表达式的语法与示例
  15. 5611AH 数码管 引脚图
  16. 洪荒制作量子计算机 小说,洪荒:从南天门开始
  17. 超融合架构HCI和传统数据中心三层架构的比较
  18. 为啥需要Scaffold Split ?(附Scaffold Split代码)
  19. Implement (interface)
  20. 【资源】前端优质资源收集

热门文章

  1. 畅言普通话软件测试准确率高吗,畅言普通话测试准确吗_畅言网普通话很严格...
  2. mysql_java.sql.SQLException: null, message from server: Host 'xxx' is not allowed to connect
  3. 如何将mp4视频压缩变小,视频压缩快速完成
  4. html怎么设置img样式,img 元素可以用 CSS 设置样式吗?
  5. PE实战教程之扩大节
  6. rono在oracle的作用_oracle分区表有什么作用
  7. 计算机应用编程师职业指导,计算机应用个人职业生涯规划书.doc
  8. JS的map()方法会改变原始数组吗?
  9. Java-超市购物小票案例-详细介绍
  10. go环境搭建开发工具安装配置