当前位置:首页 > uni-app

uniapp如何写全局函数

2026-01-13 19:46:55uni-app

全局函数的定义与使用

在UniApp中定义全局函数可以通过挂载到Vue.prototype或使用模块化导出导入的方式实现。以下是两种常用方法:

方法一:挂载到Vue.prototype

main.js中定义全局函数并挂载到Vue原型链上,所有页面和组件可通过this调用。

uniapp如何写全局函数

// main.js
import Vue from 'vue'

Vue.prototype.$globalFunc = function(params) {
  console.log('全局函数调用,参数:', params)
  // 函数逻辑
}

组件中使用:

export default {
  methods: {
    callGlobalFunc() {
      this.$globalFunc('测试参数')
    }
  }
}

方法二:模块化导出与导入

将函数封装为独立模块,通过import引入使用。

uniapp如何写全局函数

1. 创建全局函数文件

// utils/globalFunctions.js
export function globalFuncA(params) {
  return `处理结果: ${params}`
}

export function globalFuncB() {
  // 函数逻辑
}

2. 组件中按需引入

import { globalFuncA } from '@/utils/globalFunctions.js'

export default {
  methods: {
    useFunc() {
      const result = globalFuncA('参数')
      console.log(result)
    }
  }
}

注意事项

  • 命名规范:挂载到Vue.prototype的函数建议以$开头(如$func),避免与组件属性冲突。
  • this绑定:若函数内需访问组件实例,使用普通函数而非箭头函数。
  • TypeScript支持:若使用TS,需扩展Vue类型声明(在src/shims-vue.d.ts中):
    declare module 'vue/types/vue' {
      interface Vue {
        $globalFunc: (params: any) => void
      }
    }

适用场景对比

方式 优点 缺点
Vue.prototype 调用方便,直接通过this访问 可能污染Vue原型链
模块化 按需导入,代码组织清晰 每次使用时需显式引入

标签: 全局函数
分享给朋友:

相关文章

vue组件实现函数调用

vue组件实现函数调用

实现 Vue 组件函数调用的方法 在 Vue 组件中实现函数调用可以通过多种方式完成,以下是常见的几种方法: 通过 methods 定义并调用函数 在 Vue 组件的 methods 选项中定义函…

vue实现原生全局alert

vue实现原生全局alert

在Vue中实现原生全局alert功能,可以通过以下方法完成。这些方法确保在不破坏Vue响应式系统的情况下调用原生alert,同时支持全局调用。 挂载到Vue原型链 将alert方法挂载到Vu…

vue如何实现全局搜索

vue如何实现全局搜索

实现全局搜索的方法 在Vue中实现全局搜索功能可以通过多种方式完成,具体取决于项目的需求和架构。以下是几种常见的方法: 使用Vuex进行状态管理 创建一个全局搜索的Vuex模块,存储搜索关键词和搜…

react函数如何调用redux

react函数如何调用redux

在React函数组件中调用Redux 使用react-redux库提供的useSelector和useDispatch钩子函数,可以在函数组件中访问Redux状态和派发action。 安装必要依赖:…

react如何定义全局方法

react如何定义全局方法

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

react如何注册全局组件

react如何注册全局组件

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