广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue3中如何实现定义全局变量
  • 211
分享到

vue3中如何实现定义全局变量

2024-04-02 19:04:59 211人浏览 独家记忆
摘要

目录vue3定义全局变量Vue3全局变量app.config.globalProperties的使用globalPropertiesvue3定义全局变量 在vue2中,我们知道vue

vue3定义全局变量

在vue2中,我们知道vue2.x是使用Vue.prototype.$xxxx=xxx来定义全局变量,然后通过this.$xxx来获取全局变量。

但是在vue3中,这种方法显然不行了。因为vue3中在setup里面我们是无法获取到this的,因此按照官方文档我们使用下面方法来定义全局变量:

首先在main.js里写一个我们要定义的全局变量,比如一个系统id吧

app.config.globalProperties.$systemId = "10"

现在在页面里需要使用这个变量,只需要从vue中引入getCurrentInstance即可,注意不能在页面中使用this.

import { getCurrentInstance } from "vue";
const systemId = getCurrentInstance()?.appContext.config.globalProperties.$systemId
console.log(systemId);//控制台可以看到输出了10

vue3全局变量app.config.globalProperties的使用

globalProperties

  • 类型:[key: string]: any
  • 默认:undefined
  • 用法

添加一个可以在应用的任何组件实例中访问的全局 property。组件的 property 在命名冲突具有优先权。

这可以代替 Vue 2.x Vue.prototype 扩展:

// 之前(Vue 2.x)
Vue.prototype.$Http = () => {}
 
// 之后(Vue 3.x)
const app = Vue.createApp({})
app.config.globalProperties.$http = () => {}

当我们想在组件内调用http时需要使用getCurrentInstance()来获取。

import { getCurrentInstance, onMounted } from "vue";
export default {
  setup( ) {
    const { ctx } = getCurrentInstance(); //获取上下文实例,ctx=vue2的this
    onMounted(() => {
      console.log(ctx, "ctx");
      ctx.http();
    });
  },
};

getCurrentInstance代表上下文,即当前实例。ctx相当于Vue2的this, 但是需要特别注意的是ctx代替this只适用于开发阶段,如果将项目打包放到生产服务器上运行,就会出错,ctx无法获取路由和全局挂载对象的。此问题的解决方案就是使用proxy替代ctx,代码参考如下。

import { getCurrentInstance } from 'vue'
export default ({
  name: '',
  setup(){
    const { proxy } = getCurrentInstance() // 使用proxy代替ctx,因为ctx只在开发环境有效
    onMounted(() => {
      console.log(proxy, "proxy");
      proxy.http();
    });
  }
})

注意:尤大在vue3推荐使用依赖注入:provide和inject。原因:vue/rfcs.

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: vue3中如何实现定义全局变量

本文链接: https://www.lsjlt.com/news/164828.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue3中如何实现定义全局变量
    目录vue3定义全局变量vue3全局变量app.config.globalProperties的使用globalPropertiesvue3定义全局变量 在vue2中,我们知道vue...
    99+
    2022-11-13
  • jquery中如何定义全局变量
    在jquery中定义全局变量的方法:1.新建html项目,引入jquery;2.使用var关键字定义全局变量;具体步骤如下:首先,新建一个html项目,并在项目中引入jquery;<script type="text/jav...
    99+
    2022-10-04
  • Python中如何定义全局变量
    今天就跟大家聊聊有关Python中如何定义全局变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 声明法该方法是直接在当前模块中进行全局变量定义声明,使用global的声明方式,再进...
    99+
    2023-06-04
  • VUE如何定义全局变量
    这篇文章主要介绍了VUE如何定义全局变量,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、全局变量专用模块就是以一个特定模块来组织管理这些全...
    99+
    2022-10-19
  • java如何定义全局变量
    在Java中,可以使用以下两种方式定义全局变量:1. 在类中定义静态变量:静态变量属于类,而不是属于类的实例对象。可以通过类名直接访...
    99+
    2023-08-29
    java
  • android如何定义全局变量
    在Android中,可以通过以下几种方式定义全局变量:1. 使用静态变量:在一个类中定义一个静态变量,并在需要使用的地方引用该变量。静态变量的生命周期与应用程序的生命周期相同,可以在整个应用程序中访问。例如,在一个名为MyApplica...
    99+
    2023-08-11
    android
  • python如何定义全局变量
    在Python中,可以使用全局变量来在整个程序中共享数据。以下是定义全局变量的几种方法:1. 在函数外部定义全局变量:```pyth...
    99+
    2023-08-12
    python
  • c语言中全局变量如何定义
    在C语言中,全局变量可以在函数外部定义。它们的作用域从变量定义的位置开始,直到文件的末尾。全局变量在整个程序中都是可见的,可以被任何...
    99+
    2023-09-29
    c语言
  • nodejs中怎么定义全局变量
    本篇内容主要讲解“nodejs中怎么定义全局变量”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“nodejs中怎么定义全局变量”吧! ...
    99+
    2022-10-19
  • c语言全局变量如何定义
    在C语言中,全局变量的定义需要放在函数外部,即在所有函数的外部声明和定义。全局变量的作用域是整个程序,可以被程序中的任何函数访问和使...
    99+
    2023-09-04
    c语言
  • vue如何定义全局变量和全局方法实例代码
    目录一、给vue定义全局变量1.定义专用模块来配置全局变量2.通过全局变量挂载到Vue.prototype3.使用vuex二、给vue定义全局方法1.将方法挂载到 Vue.proto...
    99+
    2023-05-17
    vue 定义全局变量 vue 定义全局方法 vue中如何定义全局变量
  • vb全局变量如何定义和使用
    在VB中,可以使用Public关键字来定义全局变量,以便在整个应用程序中都可以访问和使用。以下是全局变量的定义和使用的示例:1. 在...
    99+
    2023-10-20
    vb
  • Vue全局变量和局部变量如何实现
    这篇文章主要介绍“Vue全局变量和局部变量如何实现”,在日常操作中,相信很多人在Vue全局变量和局部变量如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue全局变量和局部变量如何实现”的疑惑有所帮助!...
    99+
    2023-07-04
  • python如何在函数内定义全局变量
    使用python在函数中定义全局变量的方法在python函数中使用全局变量时,需要使用global进行声明,否则它会隐藏该全局变量。示例:x = 1def func():global xprint xx = 2print xprint xf...
    99+
    2022-10-17
  • Vue 中怎么实现全局变量和局部变量
    本篇文章为大家展示了Vue 中怎么实现全局变量和局部变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。局组件和局部组件1.先定义组件   Vue...
    99+
    2022-10-19
  • 如何理解函数或全局变量重复定义
    这篇文章主要讲解了“如何理解函数或全局变量重复定义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解函数或全局变量重复定义”吧!可能有些朋友第一反应是,...
    99+
    2022-10-19
  • C语言中如何实现局部与全局变量
    这篇“C语言中如何实现局部与全局变量”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言中如何实现局部与全局变量”文章吧。C...
    99+
    2023-06-16
  • c语言中全局变量定义的方法是什么
    在C语言中,全局变量可以在函数外部定义。以下是全局变量定义的方法:1. 在所有函数的外部定义变量,这样变量就可以在程序的任何地方访问...
    99+
    2023-09-29
    c语言
  • vue中如何定义变量
    在vue中定义变量的方法有:1.使用var定义;2.使用const定义;3.使用let定义;具体方法如下:使用var定义变量var a = 1;console.log('函数外var定义a:' + a);function change(){...
    99+
    2022-10-17
  • vue3如何定义变量及ref、reactive、toRefs特性说明
    目录vue3定义变量及ref、reactive、toRefs特性1.ref() 函数2.reactive() 函数3.toRefs() 函数vue3定义变量1.const 声明变量2...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作