当前位置:首页 > uni-app

uniapp如何写全局函数

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

全局函数的定义与使用

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

方法一:挂载到Vue.prototype

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

// main.js
import Vue from 'vue'

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

组件中使用:

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

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

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

1. 创建全局函数文件

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

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

2. 组件中按需引入

uniapp如何写全局函数

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实现原生全局alert

vue实现原生全局alert

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

react如何定义全局方法

react如何定义全局方法

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

react项目如何定义全局函数

react项目如何定义全局函数

定义全局函数的方法 在React项目中,可以通过以下几种方式定义全局函数,以便在整个应用中复用。 使用全局变量挂载 将函数挂载到window对象上,使其成为全局可访问的函数。这种方式简单直接,但可能…

react如何阻止函数组件更新

react如何阻止函数组件更新

阻止函数组件更新的方法 在React中,函数组件的更新通常由状态(state)或属性(props)的变化触发。以下是几种阻止函数组件不必要更新的方法: 使用React.memo进行浅比较 React…

react如何让函数组件缓存

react如何让函数组件缓存

缓存函数组件的常用方法 在React中,函数组件本身是无状态的,但可以通过以下方式实现类似类组件的缓存或优化效果: 使用React.memo进行浅比较缓存 React.memo是一个高阶组件,它会记…

react如何做全局路由拦截

react如何做全局路由拦截

在React中实现全局路由拦截通常需要结合路由库(如React Router)和状态管理工具。以下是几种常见方法: 使用React Router的Navigate组件 在React Router v…