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中挂载全局的方法详解

    Vue中挂载全局的方法详解

    有时候,频繁调用的函数,我们需要把它挂载在全局的vue原型上,方便调用,这篇文章主要为大家详细介绍了Vue中挂载全局的具体操作,需要的可以参考下
    2024-03-03
  • vue中formdata传值给后台时参数为空的问题

    vue中formdata传值给后台时参数为空的问题

    这篇文章主要介绍了vue中formdata传值给后台时参数为空的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • vue默认插槽的理解与实例代码

    vue默认插槽的理解与实例代码

    对于插槽的概念和使用,这是vue的一个难点,这需要我们静下心来,慢慢研究,下面这篇文章主要给大家介绍了关于vue默认插槽的相关资料,需要的朋友可以参考下
    2021-11-11
  • Vue3项目中引入ElementUI并使用的示例详解

    Vue3项目中引入ElementUI并使用的示例详解

    ElementUI是一个强大的PC端UI组件框架,它不依赖于vue,但是却是当前和vue配合做项目开发的一个比较好的ui框架,本文主要介绍了如何在vue3中引入使用ElementUI,需要的可以参考一下
    2023-06-06
  • Vue 设置图片不转为base64的方式

    Vue 设置图片不转为base64的方式

    这篇文章主要介绍了Vue实现设置图片不转为base64的方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • VUE实现token登录验证

    VUE实现token登录验证

    这篇文章主要为大家介绍了VUE实现token登录验证,详细记录实现token登录验证的步骤,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • vue实现全屏滚动效果(非fullpage.js)

    vue实现全屏滚动效果(非fullpage.js)

    这篇文章主要为大家详细介绍了vue实现全屏滚动效果,非fullpage.js,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • vue怎样获取当前时间,并且传递给后端(不用注解)

    vue怎样获取当前时间,并且传递给后端(不用注解)

    这篇文章主要介绍了vue怎样获得当前时间,并且传递给后端(不用注解)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • vite打包拆分js和css的配置指南

    vite打包拆分js和css的配置指南

    这篇文章主要给大家介绍了关于vite打包拆分js和css的配置指南,Vite是一个非常快速的工具,它可以帮助你打包JavaScript文件,需要的朋友可以参考下
    2023-09-09
  • vue修改对象的属性值后页面不重新渲染的实例

    vue修改对象的属性值后页面不重新渲染的实例

    今天小编就为大家分享一篇vue修改对象的属性值后页面不重新渲染的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08

最新评论