uni-app全局变量

文章目录

  • 公用模块
  • prototype
  • globalData

公用模块

定义一个专用的模块,用来组织和管理这些全局的变量,在需要的页面引入。

注意这种方式只支持多个vue页面或多个nvue页面之间公用,vue和nvue之间不公用。

创建util目录,并在下面创建util.js文件

function logUtil(log){
	console.log(log);
}


module.exports = {
  js_date_time: js_date_time,
  logUtil:logUtil
}

使用:

var util = require('../../util/util.js');

util.logUtil("打印日志");

这种方式一般用于直接调用,不方便赋值

prototype

将一些使用频率较高的常量或者方法,直接扩展到 Vue.prototype 上,每个 Vue 对象都会“继承”下来。

注意这种方式只支持vue页面

示例如下:
在 main.js 中挂载属性/方法

创建common目录,并创建common.js文件

export default{
	them:{
		backgroundColor:'#156df1',
		textColor:'#156df1'
	},
	
	setThem(data){
		this.them = Object.assign({},this.them,data)
	}
}

在mian中引入

//主题色全局变量
Vue.prototype.$them = them;

使用:

赋值:
that.$them.setThem({backgroundColor:'#ff3893',textColor:'#ff3893'}) 

取值:
 this.background =this.$them.them.backgroundColor;

globalData

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

globalData支持vue和nvue共享数据。

globalData是一种比较简单的全局变量使用方式。

定义:App.vue

  

  

js中操作globalData的方式如下:

赋值:getApp().globalData.text = ‘test’

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

如果需要把globalData的数据绑定到页面上,可在页面的onshow声明周期里进行变量重赋值。HBuilderX 2.0.3起,nvue页面在uni-app编译模式下,也支持onshow。

你可能感兴趣的:(uni-app,小程序)