uniapp中使用vue语法定义全局变量

22 篇文章 0 订阅

**前言:**在用uniapp写移动端的时候需要调用后台接口返回的值,然后这个值可以在全局使用。

具体步骤:
1.新建js文件,common.js;
2.在common.js中首先定义一个全局变量,并给他赋初始值,比如:style;

export default {
    memberObj:{
		//1 普通  2幼儿园  3高中  4节日
        style:3,
		className:"大班",
		isTest:false,

    },
	 }
    // setMemberObj(data){
		
         // this.memberObj = Object.assign({},this.memberObj,data) 
    // }
}

3.然后在App.vue中调用后台接口获取值,并把值回调给变量,即可实现动态给变量赋值,并可全局使用

onShow: function() {
		//promiseGetRequest是封装好的promise同步接口
			var _this=this;
			request.promiseGetRequest('接口地址')
			.then(res=>{
				console.log(res.data.d[0])
				_this.$member.memberObj.style=res.data.d[0].themeId;
				_this.style=_this.$member.memberObj.style;
			// console.log(_this.style)
			switch(_this.style){
				case 1:
					document.body.style.backgroundImage="linear-gradient(180deg, #50ABFA, #666FF6)"
					break;
				case 2:
					document.body.style.background="url("+this.imgServerUrl+"/bg2.png) no-repeat";
					document.body.style.backgroundSize="100% 100%"
					break;
				case 3:
					document.body.style.background="url("+this.imgServerUrl+"/bg3.png) no-repeat";
					document.body.style.backgroundSize="100% 100%"
					break;
				case 4:
					document.body.style.background="url("+this.imgServerUrl+"/bg4.png) no-repeat";
					document.body.style.backgroundSize="100% 100%"
					// document.body.style.backgroundImage="linear-gradient(180deg, #50ABFA, #666FF6)"
					break;
			}
			})
		},
uniapp,可以使用Vue实例的$set方法或者Vuex的mutation来实现动态的全局变量。 方法一:使用Vue实例的$set方法 在Vue实例,可以使用$set方法来动态添加全局变量。具体操作如下: 1. 在main.js创建Vue实例,并定义全局变量。 ``` import Vue from 'vue' import App from './App.vue' Vue.config.productionTip = false const app = new Vue({ data: { globalVar: {} }, render: h => h(App) }) app.$mount() ``` 2. 在组件使用$set方法动态添加全局变量。 ``` export default { mounted() { this.$set(this.$root.$data.globalVar, 'name', 'Tom') } } ``` 在上面的代码使用了$set方法给全局变量globalVar添加了一个属性name,并赋值为'Tom'。 方法二:使用Vuex的mutation 在Vuex,可以使用mutation来修改全局变量。具体操作如下: 1. 在src目录下创建store.js文件,定义一个Vuex Store。 ``` import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state: { globalVar: {} }, mutations: { SET_NAME(state, name) { state.globalVar.name = name } } }) export default store ``` 在上面的代码定义了一个mutation SET_NAME,用来修改全局变量globalVar的属性name。 2. 在组件使用$store.commit方法调用mutation。 ``` export default { mounted() { this.$store.commit('SET_NAME', 'Tom') } } ``` 在上面的代码使用了$store.commit方法调用了mutation SET_NAME,将全局变量globalVar的属性name修改为'Tom'。 以上就是在uniapp实现动态的全局变量的两种方法,可以根据具体需求选择适合自己的方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值