当前位置:首页 > 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挂载全局方法或属性:

uniapp全局实例

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

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

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

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

uniapp全局实例

// 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)
})

全局事件总线

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

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

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

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

相关文章

uniapp全局校验

uniapp全局校验

uniapp全局校验的实现方法 在uniapp中实现全局校验可以通过多种方式,主要包括拦截器、全局混入和自定义指令等方法。 使用请求拦截器进行校验 在main.js中配置请求拦截器,对所有请求进行统…

vue实现全局模态框

vue实现全局模态框

vue实现全局模态框的方法 使用Vue.extend创建模态框组件 通过Vue.extend创建独立的模态框构造器,挂载到DOM中实现全局调用。这种方式适合需要频繁调用的模态框场景。 // Moda…

vue实现全局加载动画

vue实现全局加载动画

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

vue实现代码实例

vue实现代码实例

以下是一个基于 Vue 3 的完整代码实例,包含核心功能实现和常见开发场景的示例: 基础组件示例 <template> <div> <h1>{{ ti…

react如何注册全局组件

react如何注册全局组件

注册全局组件的方法 在React中注册全局组件可以通过多种方式实现,以下为常见的几种方法: 使用React.createElement和全局变量 将组件赋值给全局变量(如window对象),在其他…

react如何全局引入组件

react如何全局引入组件

全局引入组件的方法 在React中,可以通过以下几种方式实现全局引入组件,避免在每个文件中重复导入。 使用Context API 通过React的Context API可以将组件注入到应用顶层,子组…