当前位置:首页 > uni-app

uniapp全局实例

2026-03-05 08:09:09uni-app

uniapp全局实例的概念

在uniapp中,全局实例是指在整个应用生命周期内可访问的共享对象或方法。通常用于存储全局变量、工具函数或跨页面共享的数据。通过全局实例,可以避免重复定义和传递数据,提升代码复用性和可维护性。

创建全局实例的方式

1. 使用App.vueglobalDataApp.vue文件中,可以通过globalData定义全局变量:

export default {
  globalData: {
    baseURL: 'https://example.com/api',
    userInfo: null
  }
}

在页面或组件中通过getApp()访问:

const app = getApp()
console.log(app.globalData.baseURL)

2. 通过Vue的原型链挂载main.js中,可以通过Vue.prototype挂载全局方法或属性:

import Vue from 'vue'
Vue.prototype.$utils = {
  formatTime: (timestamp) => {
    return new Date(timestamp).toLocaleString()
  }
}

在组件中直接通过this调用:

this.$utils.formatTime(Date.now())

3. 使用Vuex状态管理 对于复杂的全局状态,推荐使用Vuex集中管理:

// store/index.js
export default new Vuex.Store({
  state: {
    token: ''
  },
  mutations: {
    setToken(state, payload) {
      state.token = payload
    }
  }
})

在组件中通过this.$store访问:

this.$store.commit('setToken', 'new-token')

全局实例的注意事项

  • 命名规范:全局变量或方法建议以$开头(如$api),避免与组件内属性冲突。
  • 性能影响:避免在全局实例中存储过大的数据,可能影响内存占用。
  • 响应式限制:直接添加到globalData的数据不是响应式的,需手动触发更新。

实际应用示例

全局请求封装

// main.js
Vue.prototype.$request = async function(url, data) {
  const res = await uni.request({
    url: getApp().globalData.baseURL + url,
    data
  })
  return res[1].data
}

// 组件中使用
this.$request('/user/info').then(res => {
  console.log(res)
})

全局事件总线

uniapp全局实例

// main.js
Vue.prototype.$eventBus = new Vue()

// 组件A发送事件
this.$eventBus.$emit('login-success')

// 组件B监听事件
this.$eventBus.$on('login-success', () => {
  console.log('登录成功')
})

标签: 全局实例
分享给朋友:

相关文章

vue实现全局方法

vue实现全局方法

在 Vue 中实现全局方法 Vue 中可以通过多种方式实现全局方法,以下是常见的几种方法: 1. 通过 Vue.prototype 添加全局方法 在 Vue 的原型上添加方法,这样所有的 Vue…

vue实现全局加载动画

vue实现全局加载动画

使用Vue插件封装全局加载动画 在Vue项目中创建一个自定义插件,通过Vue的插件系统实现全局调用。 创建src/plugins/loading.js文件: const Loading = {…

react如何定义全局方法

react如何定义全局方法

定义全局方法的方式 在React中定义全局方法可以通过多种方式实现,具体取决于项目的架构和需求。以下是几种常见的方法: 使用Context API 通过React的Context API可以创建一个…

如何全局安装react脚手架

如何全局安装react脚手架

全局安装React脚手架的方法 使用npm全局安装create-react-app工具,该工具是官方推荐的React项目脚手架生成器。打开终端或命令行窗口,执行以下命令: npm install -…

react如何封装一个组件供全局调用

react如何封装一个组件供全局调用

封装React全局组件的方法 在React中封装全局组件通常涉及创建可复用的独立组件,并通过上下文(Context)、高阶组件(HOC)或自定义Hook等方式使其在应用内随处可用。以下是具体实现方式:…

js实现全局搜索

js实现全局搜索

实现全局搜索的基本思路 全局搜索功能通常涉及遍历页面内容或数据集,匹配用户输入的关键词并高亮显示结果。以下是基于JavaScript的实现方法。 监听搜索输入事件 通过事件监听获取用户输入的搜索词,…