在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'

uniapp全部页面共同的全局变量

原文地址: https://www.cveoy.top/t/topic/hPDF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录