uniapp全部页面共同的全局变量
在uni-app中,可以通过在main.js文件中定义全局变量来实现所有页面共享的全局变量。
在main.js中,可以使用Vue.prototype来定义全局变量。例如:
import Vue from 'vue'
import App from './App'
Vue.prototype.$globalData = {
userInfo: null,
token: ''
}
const app = new Vue({
...App
})
app.$mount()
在上述代码中,我们定义了一个全局变量$globalData,并初始化了userInfo和token。在其他页面中,可以通过this.$globalData来访问和修改这些全局变量。例如:
export default {
created() {
console.log(this.$globalData.userInfo)
this.$globalData.token = 'abc123'
}
}
以上代码中,我们在created生命周期函数中访问了$globalData.userInfo,并将$globalData.token修改为'abc123'。
需要注意的是,通过Vue.prototype定义的全局变量是响应式的,意味着当全局变量发生变化时,页面中使用该全局变量的地方也会自动更新。但是,如果全局变量是对象或数组,需要使用Vue.set或this.$set来修改对象或数组的属性才能触发更新,例如:
export default {
created() {
this.$set(this.$globalData.userInfo, 'name', 'John')
}
}
以上代码中,我们使用this.$set方法向$globalData.userInfo对象中添加了一个name属性,并赋值为'John'。这样,页面中使用$globalData.userInfo.name的地方会自动更新为'John'
原文地址: https://www.cveoy.top/t/topic/hPDF 著作权归作者所有。请勿转载和采集!