Vue3挂载全局变量及使用办法1

这篇博客介绍了如何在Vue3中使用依赖注入来创建和使用全局变量。通过`app.provide`设置全局变量,并在组件内部用`reactive`和`inject`来响应式地访问这些变量。此外,还展示了如何挂载常规全局变量到`globalProperties`,并在组件中通过`getCurrentInstance`访问。

采用依赖注入玩VUE3全局变量

// 采用依赖注入玩VUE3全局变量
const myname = {
   
    firstname: 'xiao', lastname: 'tianya' };
const myage = 38;
app.provide('global', {
   
    myname, myage });

使用办法


                
### 定义和使用全局变量Vue 3 和 TypeScript 的项目中定义并使用全局变量可以通过多种方式实现。一种常见的方式是在 `main.ts` 或者专门创建的 `.d.ts` 文件中扩展 Vue 应用实例属性。 #### 方法一:通过插件机制注册全局变量 可以编写一个简单的插件来向应用注入全局属性: ```typescript // plugins/globalVariables.ts import { App } from &#39;vue&#39;; const GlobalPlugin = { install(app: App, options?: any) { app.config.globalProperties.$globalVar = "This is a global variable"; } }; export default GlobalPlugin; ``` 接着,在项目的入口文件引入此插件: ```typescript // main.ts import { createApp } from &#39;vue&#39;; import App from &#39;./App.vue&#39;; import GlobalPlugin from &#39;./plugins/globalVariables&#39;; createApp(App).use(GlobalPlugin).mount(&#39;#app&#39;); ``` 这样就可以在整个应用程序中的任何组件里访问 `$globalVar` 属性了[^1]。 #### 方法二:利用 Composition API 创建可组合函数 对于更复杂的场景,推荐采用 Composition API 来封装逻辑,并将其作为 composable 函数导出给其他模块使用: ```typescript // composables/useGlobalVariable.ts import { ref } from &#39;vue&#39;; function useGlobalVariable() { const globalMessage = ref(&#39;Hello World&#39;); function updateMessage(newMsg:string){ globalMessage.value=newMsg; } return { globalMessage ,updateMessage}; } export default useGlobalVariable; ``` 然后可以在任意组件内部调用这个 composable 函数获取到所需的响应式数据或方法[^2]: ```javascript <script setup lang="ts"> import useGlobalVariable from &#39;@/composables/useGlobalVariable&#39; const { globalMessage, updateMessage} = useGlobalVariable(); </script> <template> <div>{{ globalMessage }}</div> <!-- 更改消息 --> <button @click="updateMessage(&#39;New Message&#39;)">Change Msg</button> </template> ``` 这两种方法都可以有效地管理和共享状态,但是当涉及到 Vuex 这样的集中化状态管理模式时,则应该考虑直接操作 store 而不是单独设置额外的全局变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿赛工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值