当前位置:首页 > VUE

vue实现全局变量

2026-03-26 22:59:33VUE

Vue 2 实现全局变量

在 Vue 2 中,可以通过 Vue 的原型链或 Vuex 状态管理实现全局变量。

原型链方式
通过 Vue.prototype 挂载全局变量,所有组件实例均可访问:

// main.js
Vue.prototype.$globalVar = '全局变量值';

// 组件中使用
this.$globalVar;

Vuex 方式
适用于需要响应式更新或复杂状态管理的场景:

// store.js
export default new Vuex.Store({
  state: {
    globalVar: '初始值'
  }
});

// 组件中使用
this.$store.state.globalVar;

Vue 3 实现全局变量

Vue 3 推荐使用 provide/inject 或全局状态管理库(如 Pinia)。

vue实现全局变量

provide/inject 方式
在应用顶层提供变量,子组件注入使用:

// main.js
import { createApp } from 'vue';
const app = createApp(App);
app.provide('globalVar', '全局值');

// 子组件中使用
import { inject } from 'vue';
const globalVar = inject('globalVar');

Pinia 方式
Vue 3 官方推荐的状态管理工具:

vue实现全局变量

// stores/global.js
import { defineStore } from 'pinia';
export const useGlobalStore = defineStore('global', {
  state: () => ({ globalVar: '值' })
});

// 组件中使用
import { useGlobalStore } from '@/stores/global';
const store = useGlobalStore();
store.globalVar;

注意事项

  1. 响应式更新
    若需变量响应式更新,优先使用 Vuex/Pinia 或 Vue 3 的 ref/reactive

  2. 命名规范
    通过原型链挂载的变量建议以 $ 开头(如 $globalVar),避免命名冲突。

  3. 类型安全
    Vue 3 结合 TypeScript 时,可为 provide/inject 声明类型:

    app.provide<string>('globalVar', '值');
    const globalVar = inject<string>('globalVar');

标签: 全局变量vue
分享给朋友:

相关文章

vue实现盖章

vue实现盖章

Vue 实现盖章功能 在Vue中实现盖章功能通常涉及前端UI交互,通过Canvas或SVG绘制印章,并允许用户拖拽或点击放置印章。以下是具体实现方法: 使用Canvas绘制印章 通过HTML5的Ca…

vue实现复选

vue实现复选

Vue 实现复选框 在 Vue 中实现复选框可以通过 v-model 指令绑定数据,同时结合 input 元素的 type="checkbox" 属性来实现。以下是几种常见的实现方式: 单个复选框…

vue实现popup

vue实现popup

Vue 实现 Popup 弹窗 使用 Vue 原生组件 创建一个基本的 Vue 组件作为弹窗,通过 v-if 或 v-show 控制显示隐藏。 <template> <div&…

vue实现心电图

vue实现心电图

Vue 实现心电图效果 在 Vue 中实现心电图效果通常需要结合 Canvas 或 SVG 进行动态绘图,模拟心电图数据的实时变化。以下是两种实现方式的核心思路和代码示例: 使用 Canvas 绘制…

vue实现dag

vue实现dag

Vue实现DAG(有向无环图) 在Vue中实现DAG(Directed Acyclic Graph,有向无环图)通常涉及数据结构的建模、可视化渲染以及交互逻辑处理。以下是关键实现步骤和示例代码: 数…

vue实现插件

vue实现插件

Vue 插件实现方法 Vue 插件通常用于为 Vue 应用添加全局功能或共享功能。以下是实现 Vue 插件的核心步骤: 插件基本结构 Vue 插件需要暴露一个 install 方法,该方法接收 Vu…