Uniapp微信小程序开发:全局变量的使用

简介

本文介绍了在Vue3中实现全局属性共享的两种方法。

第一种是通过app.config.globalProperties全局挂载属性,结合getCurrentInstance()在组合式API中获取组件实例来访问全局属性。

第二种推荐使用provide/inject方案,更符合Vue3设计理念,适合跨层级传递属性,通过app.provide()全局提供属性,再使用inject()注入使用。

两种方式都能有效实现全局状态共享,其中provide/inject方式更组件化且类型安全。

使用 app.config.globalProperties + getCurrentInstance

全局挂载(在入口文件中)

javascript 复制代码
import { createSSRApp } from 'vue';
export function createApp() {
  const app = createSSRApp(App);
  // 挂载全局属性
  app.config.globalProperties.$Hello = 'Hello vue3'; 
  return {
    app
  };
}

在组合式 API 中使用

javascript 复制代码
<script setup>
import { getCurrentInstance } from 'vue';

// 获取组件实例
const instance = getCurrentInstance();

// 访问全局属性
const hello1 = instance.appContext.config.globalProperties.$Hello;
//(proxy 是组件实例的代理,包含全局属性)
const hello2=instance.proxy.$Hello

console.log(hello1); // 输出:Hello vue3
console.log(hello2); // 输出:Hello vue3
</script>

使用 provide/inject(推荐)

如果属性需要在多个组件中共享,provide/inject 是更符合 Vue 3 设计理念的方案,尤其适合跨层级传递。

全局 provide(在入口文件中)

javascript 复制代码
import { createSSRApp } from 'vue';
export function createApp() {
  const app = createSSRApp(App);
  // 全局提供属性
  app.provide('helloKey', 'Hello vue3(from provide)'); 
  return {
    app
  };
}

在组合式 API 中 inject 使用

javascript 复制代码
<script setup>
import { inject } from 'vue';

// 注入全局提供的属性(通过 key 匹配)
const hello = inject('helloKey'); 

console.log(hello); // 输出:Hello vue3(from provide)
</script>
相关推荐
发财北3 小时前
全屋智能家居定制小程序
小程序
2501_915918414 小时前
Flutter 加固方案对比与实战,多工具组合的跨平台安全体系(Flutter App 加固/IPA 成品混淆/Ipa Guard CLI/自动化安全流程)
安全·flutter·ios·小程序·uni-app·自动化·iphone
泽_浪里白条4 小时前
UniApp + Vue3 开发微信小程序数字人:TTS PCM 音频流与 SVGA 动画同步实战
微信小程序
小蒜学长4 小时前
springboot基于Java的校园导航微信小程序的设计与实现(代码+数据库+LW)
java·spring boot·后端·微信小程序
说私域5 小时前
定制开发AI智能名片S2B2C商城小程序的发展与整合资源策略研究
人工智能·小程序
WenGyyyL6 小时前
微信小程序开发——第二章:微信小程序开发环境搭建
开发语言·python·微信小程序
TiAmo zhang6 小时前
微信小程序开发案例 | 个人相册小程序(上)
微信小程序·小程序
00后程序员张19 小时前
iOS 上架费用全解析 开发者账号、App 审核、工具使用与开心上架(Appuploader)免 Mac 成本优化指南
android·macos·ios·小程序·uni-app·cocoa·iphone
WenGyyyL1 天前
微信小程序开发——第三章:WXML 与 WXSS —— 小程序页面结构与样式设计
微信小程序·小程序
万岳科技系统开发1 天前
外卖小程序中的高并发处理:如何应对大流量订单的挑战
算法·小程序·开源