uni-app 关于全局变量有以下描述:

小程序中有个globalData概念,可以在 App 上声明全局变量。 Vue 之前是没有这类概念的,但 uni-app 引入了globalData概念,并且在包括H5、App等平台都实现了。
在 App.vue 可以定义 globalData ,也可以使用 API 读写这个值。

globalData支持vue和nvue共享数据。

<script>  export default {  globalData: {  text: 'text'  },  onLaunch: function() {  console.log('App Launch')  },  onShow: function() {  console.log('App Show')  },  onHide: function() {  console.log('App Hide')  }  }
</script>  <style>  /*每个页面公共css */
</style>  

js中操作globalData的方式如下:

赋值:getApp().globalData.text = 'test'

取值:console.log(getApp().globalData.text) // 'test'

但使用的时候要注意,在onLaunch,onShow生命周期函数中不能直接使用getApp().globalData,会报错。猜测是因为getApp()在这两个生命周期函数中还没有创建出app实例。那怎么用呢?

<script>export default {globalData: {isIphoneX: false,provider: 'weixin' //'alipay' 'baidu' 'toutiao'},onLaunch: function() {console.log('App Launch')this.init()},onShow: function() {console.log('App Show')setTimeout(() => {let provider = getApp().globalData.providerconsole.log(`globalData is: ${provider}`)}, 0)},onHide: function() {console.log('App Hide')},methods: {init() {this.$nextTick(function(){let provider = getApp().globalData.providerconsole.log(`liubbc provider: ${provider}`)})let context = thisuni.getSystemInfo({success: function(res) {context.globalData.isIphoneX = res.model.indexOf('iPhone X') != -1 ? true : false}})uni.getProvider({service: 'oauth',success: function(res) {context.globalData.provider = res.provider[0] || 'weixin'}});         },}}
</script><style>/*每个页面公共css */@import '@/common/css/common.css';
</style>

上面代码给出了正确的使用方式。

uni-app 中定义全局变量globalData注意事项相关推荐

  1. 微信小程序app.js中的全局变量globalData改变,如何通知其它页面界面显示改变,小程序中如何在其他页面中监听到globalData中值的变化

    微信小程序app.js中的全局变量globalData改变,如何通知其它页面界面显示改变,小程序中如何在其他页面中监听到globalData中值的变化 在小程序中,我们一般在app.js的onLaun ...

  2. MFC中定义全局变量和全局函数的方法

    使用Visual C++6.0 中的MFC 基本应用时, 由于 MFC 制作的工程由很多文件构成, 它不能象一般C++程序那样随意在类外定义全局变量, 那样有时会在运行程序时出现问. 在软件开发过程中 ...

  3. 在JavaScript函数中定义全局变量

    是否可以在JavaScript函数中定义全局变量? 我想在其他函数中使用trailimage变量(在makeObj函数中声明). <html xmlns="http://www.w3. ...

  4. html引用c 变量,在jsp页面中定义全局变量,供其他页面引用

    一.在一个jsp中引用另一个jsp的方法有: 1.使用 jsp include指令(常用): file属性是必填的(绝对或相对路径),但它不支持任何的表达式,也不允许通过?挂参方式来传递参数. 注意: ...

  5. uni app中使用图表

    关于在uni app中运用图表 今天写项目,需要在uni app中使用图表,我使用的是ucharts. 具体操作如下 1.下载 ucharts可以直接在uni app的插件市场下载安装. 先在插件市场 ...

  6. 能不能在头文件中定义全局变量?

    首先,这是一篇科普文,所以 比较杂,我尽量写清楚一些. 1.ANSI C标准是什么?GNU又是什么?ld是什么? ANSI C是C语言的标准规范,是国际标准化组织制定的国际标准. 虽然 ANSI C规 ...

  7. c语言中的全局变量类型,c++全局变量 C/C++中定义全局变量的几种方法及区别

    c语言中全局变量主要是定义在所有函数之外的变量,在程序执行的过程中一直有效,可以被任何函数引用.赋值,想要定义它,一般将其定义在主函数main()之外就行. 例如下面的程序段,变量m就是一个全局变量, ...

  8. c语言头文件可以定义全局变量,C语言在头文件中定义全局变量

    C语言在头文件中定义全局变量 头文件定义全局变量等问题 全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 可以,在不同的C文件中以static形式来声明同名全局变量.头文件中不可以直接定 ...

  9. 头文件中定义全局变量

    引言 这些天写的程序中用到了全局变量,一开始是在一个文件下做测试后来把文件按逻辑拆分了一下,不同的代码被放在了几个文件中,最后用Makefile来编译就遇到了今天的话题,怎么在头文件中定义全局变量呢? ...

最新文章

  1. 一次线上生产问题的全面复盘 【定位-分析-解决】
  2. 科大星云诗社动态20210910
  3. 小众的分布式版本管理工具Code Co-op
  4. RabbitMQ快速安装配置指南
  5. unity 使用mysql实现登录注册_用mysql实现登录注册功能
  6. jQuery跨域调用Web API
  7. vue中组件的data为什么是一个函数
  8. 使用Node.JS,如何将JSON文件读入(服务器)内存?
  9. InvalidClassException
  10. 算法4(一、递归学习)
  11. 个人通过ipv6地址提供公网访问服务
  12. php 瀑布流布局,瀑布流布局与无限加载图片相册效果
  13. luogu P1972 [SDOI2009] HH的项链【莫队——奇偶优化详解】
  14. 单片机软件设计架构(C语言)
  15. ACM-ICPC 2018 南京赛区网络预赛 AC Challenge (状态压缩DP)
  16. 怎样把COFFEEscript 编译成JS
  17. seo查询工具源码_英文SEO站群建设(下):站群通过自我复制外链获得权重
  18. mac 强制删除mysql_mac中如何彻底删除MySQL
  19. 管理类联考历年英语小作文范文
  20. 硬件原理图中的“英文缩写”大全

热门文章

  1. 主流机型分辨率尺寸汇总
  2. Unity_Shader初级篇_8_Unity Shader入门精要
  3. uniapp利用scheme启动App
  4. 串口烧录(无仿真器烧录程序)
  5. 适合前端入门的Go语言开发框架fiber
  6. Oracle闪回区满(ORA-16014)
  7. Java程序开发一个窗体有两个按钮,一个是“开始”按钮,一个是“结束”按钮,当用户点击“开始”按钮时就在控制台打印一句话,反之则结束打印。
  8. 17种家常菜竟是健康杀手
  9. python单分支结构范例
  10. uni-app 对FastAdmin微信公众号授权登录实例