vue3 定义使用全局变量的示例详解

 更新时间:2023年10月17日 09:34:24   作者:代码就是bug  
全局变量(函数等)可以在任意组件内访问,可以当组件间的传值使用,这篇文章给大家介绍vue3 定义使用全局变量的示例详解,感兴趣的朋友跟随小编一起看看吧

vue3 定义使用全局变量

在main.js

import { createApp } from 'vue'
import App from './App.vue'
//  引入element
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
// 引入router
import router from './route/index'
const app = createApp(App)
app.use(ElementPlus)
app.use(router)
// 定义全局变量
app.config.globalProperties.$key= "这是一个全局变量";
app.mount('#app')

在页面中使用

import {getCurrentInstance} from 'vue'
const internalInstance = getCurrentInstance()
//  全局变量
let global=internalInstance.appContext.config.globalProperties;
console.log(global.$key)

getCurrentInstance 只能在 setup 或生命周期钩子中调用。

Vue3全局变量使用

全局变量(函数等)可以在任意组件内访问,可以当组件间的传值使用。

main.js

import './assets/main.css'
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App);
app.config.globalProperties.$global_id=10;
app.config.globalProperties.$global_name="test";
app.provide('global_code', "code");
app.config.globalProperties.global_value="value";
app.mount('#app');

App.vue

<template>
  <main>
    <button @click="clicked">全局变量</button>
  </main>
</template>
<script>
import {inject, getCurrentInstance } from 'vue'
export default {
  setup () {
    const { proxy } = getCurrentInstance();
    const codec = inject("global_code");
    function clicked(params) {
      console.log(proxy.$systemId)
      console.log("global_id:",proxy.$global_id)
      console.log("global_name:",proxy.$global_name);
      console.log("global_value:",proxy.global_value);
      console.log("codec:", codec);
    }
    return {clicked}
  }
}
</script>
<!-- <script setup>
//setup的实现
import { inject,getCurrentInstance  } from 'vue'
const codec = inject("global_code");
const instance = getCurrentInstance();
function clicked()
{
  console.log("test");
  console.log("global_id:",instance.appContext.config.globalProperties.$global_id)
  console.log("global_name:",instance.proxy.$global_name);
  console.log("global_value:",instance.proxy.global_value);
  console.log("codec:", codec);
}
</script>  -->

getCurrentInstance在使用的时候需要注意

getCurrentInstance 支持访问内部组件实例,用于高阶用法或库的开发。
import { getCurrentInstance } from 'vue'
getCurrentInstance 只能在 setup 或生命周期钩子中调用。
如需在 setup 或生命周期钩子外使用,请先在 setup 中调用 getCurrentInstance() 获取该实例然后再使用。

组合式 API | Vue.js中文网 (zcopy.site)

到此这篇关于vue3 定义使用全局变量的文章就介绍到这了,更多相关vue3 定义使用全局变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue+Vux项目实践完整代码

    Vue+Vux项目实践完整代码

    本文给大家分享一段详细的代码给大家介绍Vue+Vux项目实践思路,需要的朋友可以参考下
    2017-11-11
  • Vue3多组件的N种编写方式

    Vue3多组件的N种编写方式

    Vue 本身以及周边生态在设计语法糖上几乎没让我失望过,包括本次亮相的 Vue Vine,它的出现引起了我对 Vue3 组件编写方式的好奇,以及哪一种方式更接近「最佳实践」?下面让我来为大家一一道来
    2024-07-07
  • vue 在methods中调用mounted的实现操作

    vue 在methods中调用mounted的实现操作

    这篇文章主要介绍了vue 在methods中调用mounted的实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Vue-Router模式和钩子的用法

    Vue-Router模式和钩子的用法

    本篇文章主要介绍了Vue-Router模式和钩子的用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • VUE前端删除和批量删除实现代码

    VUE前端删除和批量删除实现代码

    这篇文章主要给大家介绍了关于VUE前端删除和批量删除的相关资料, 在实际的开发中,我们可以使用Vue.js来快速实现批量删除功能,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-07-07
  • Vue mock.js模拟数据实现首页导航与左侧菜单功能

    Vue mock.js模拟数据实现首页导航与左侧菜单功能

    这篇文章主要介绍了Vue mock.js模拟数据实现首页导航与左侧菜单功能,mockjs是用来模拟产生一些虚拟的数据,可以让前端在后端接口还没有开发出来时独立开发。我们可以使用真实的url,mockjs可以拦截ajax请求,返回设定好的数据
    2022-09-09
  • vue打包上传到服务器加载慢的优化方式

    vue打包上传到服务器加载慢的优化方式

    这篇文章主要介绍了vue打包上传到服务器加载慢的优化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Vue中的 ref,props,mixin属性

    Vue中的 ref,props,mixin属性

    这篇文章主要介绍了Vue中的ref,props,mixin属性,文章围绕主题ref,props,mixin展开详细内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • 深入了解Vue使用vue-qr生成二维码的方法

    深入了解Vue使用vue-qr生成二维码的方法

    这篇文章主要为大家介绍了Vue使用vue-qr生成二维码的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • 如何在vue中使用ant-design-vue组件

    如何在vue中使用ant-design-vue组件

    这篇文章主要介绍了如何在vue中使用ant-design-vue组件,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01

最新评论