vue2.x挂载全局是使用Vue.prototype.$xxxx=xxx的形式来挂载,然后通过this.$xxx来获取挂载到全局的变量或者方法

在vue3.x这种方法显然是不行了,vue3中在setup里面我们都获取不到this,官方提供了globalProperties

import { createApp } from 'vue'
import App from './App'
import router from '@router/index' const app = createApp(App).app.use(router).mount('#app')
app.config.globalProperties.$demoe = 'demo'

注意:千万不能这样子写:

createApp(App).config.globalProperties.$httpUrl = 'https://www.baidu.com'
createApp(App).use(router)
    .use(store)
    .use(elementPlusUI)
    .mount('#app') //或者是这样
const app = createApp(App)
createApp(App).config.globalProperties.$httpUrl = 'https://www.baidu.com'
app.use(router)
    .use(store)
    .use(elementPlusUI)
    .mount('#app')

第一种相当于我们直接调用了两次createApp(App),

最后调的那次里面压根就没有我们需要配置的全局变量,会返回undefined

在 compose api 如何用?

只需要从vue引入一个方法即可,不能在页面中使用this获取

import { defineComponent, getCurrentInstance, onMounted } from "vue"
export default defineComponent({
  setup (props, {emit}) {
     // console.log(this)
      const { appContext : { config: { globalProperties } },proxy} = getCurrentInstance()
      const { ctx, proxy } = getCurrentInstance()
      console.log(globalProperties.$demo)
      return {
          proxy
      }
  }
})

ctx和proxy都可以访问到定义的全局方法,但是ctx只能在本地使用,线上环境使用proxy

不管怎么样,在vue3项目,个人不推荐关在全局变量与属性。

参考文章:

vue3创建全局属性和方法 https://segmentfault.com/a/1190000040224048

vue3中挂载全局变量 https://blog.csdn.net/weixin_43090018/article/details/117222606

转载本站文章《vue2升级vue3:vue3创建全局属性和方法》,
请注明出处:https://www.zhoulujun.cn/html/webfront/ECMAScript/vue3/8861.html

vue2升级vue3:vue3创建全局属性和方法的更多相关文章

  1. uni-app全局属性和方法

    全局变量和全局方法是软件开发中常用的技术点! 实现方式大致分为: 1.vuex实现,值变动灵活 2.建立js文件,页面内引用 3.挂载vue实例后使用 4.小程序中的globalData 5.本地存储 ...

  2. JavaScript常用全局属性与方法

    最近,在学习JavaScript,Java作域链包含全局,记录下常用的全局属性与方法,就当是知识的积累,未列出全部,如需查看全部可参考JS相关的API文档. 常用的全局属性:  全局属性      作 ...

  3. JS对象—数组总结(创建、属性、方法)

    JS对象—数组总结(创建.属性.方法) 1.创建字符串 1.1 new Array() var arr1 = new Array(); var arr2 = new Array(6); 数组的长度为6 ...

  4. JS对象—字符串总结(创建、属性、方法)

    1.创建字符串     1.1 new String(s)         String和new一起使用,创建的是一个字符串对象,存放的是字符串s的表示.     1.2 String(s)     ...

  5. JS对象—对象总结(创建、属性、方法)

    1.创建对象Object 1.1 字面量的方式创建 1.2  new Object() 1.3 构造函数创建 1.4 工厂模式 1.5 Object.create()  ES5新增方法 Object. ...

  6. javascript js全部的 全局属性 和 方法-window

    window method: open(URL,窗口名称,窗口风格)//打开一个新的窗口,并在窗口中装载指定URL地址的网页 close()//close方法用于自动关闭浏览器窗口 alert(提示字 ...

  7. ts 在Function上创建静态属性和方法

    interface IMessage { (value: any): void; success(): void; error(): void; version: string; } const Me ...

  8. JavaScript 全局属性/函数

    JavaScript 全局 JavaScript 全局属性和方法可用于创建Javascript对象. JavaScript 全局属性 属性 描述 Infinity 代表正的无穷大的数值. NaN 指示 ...

  9. JavaScript全局属性/函数

    JavaScript 全局属性和方法可用于创建Javascript对象. JavaScript 全局属性 属性 描述 Infinity 代表正的无穷大的数值. NaN 指示某个值是不是数字值. und ...

  10. uniapp项目vue2升级vue3简单记录

    看到好多开源项目都升级了vue3,看文章说vue3性能升级很多,而且组合式api很香,遂把最近开发的自助洗车app升级下,在此记录下出现的问题. uniapp升级vue3官方指南 我是先去vue官网看 ...

随机推荐

  1. ant design TreeSelect支持搜索,切换value和title属性

    测试人员测试我form里面一个select的时候,发现只能搜索英文和数字,不能搜中文 后来找到原因,treeNodeFilterProp字段默认是velue,我value里面是id,当然搜不到中文啦 ...

  2. C++ LibCurl实现Web指纹识别

    Web指纹识别是一种通过分析Web应用程序的特征和元数据,以确定应用程序所使用的技术栈和配置的技术.这项技术旨在识别Web服务器.Web应用框架.后端数据库.JavaScript库等组件的版本和配置信 ...

  3. Python 之 Numpy 框架入门

    NumPy 目录 NumPy 基础使用 基本数据类型 创建基本数组 数组属性 数组生成 zeros.ones.empty 数组生成 numpy.zeros numpy.ones numpy.empty ...

  4. 使用React+SpringBoot开发一个协同编辑的表格文档

    本文由葡萄城技术团队发布.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 随着云计算和团队协作的兴起,协同编辑成为了许多企业和组织中必不可少的需求.通 ...

  5. CON2 工单重估 效率提升

    CON2 工单重估 效率提升 业务背景:月结CON2 每次只能允许一个进程操作 集团公司较多的话,很影响月结效率. SAP提供了专家模式程序 RKAZCON2 ,可以选平行运行   平行处理 需要选服 ...

  6. nginx的location与proxy_pass指令超详细讲解及其有无斜杠( / )结尾的区别

    本文所使用的环境信息如下: windows11 (主机系统) virtual-box-7.0环境下的ubuntu-18.04 nginx-1.22.1 (linux) 斜杠结尾之争 实践中,nginx ...

  7. 基于Redis的简易延时队列

    基于Redis的简易延时队列 一.背景 在实际的业务场景中,经常会遇到需要延时处理的业务,比如订单超时未支付,需要取消订单,或者是用户注册后,需要在一段时间内激活账号,否则账号失效等等.这些业务场景都 ...

  8. MySQL日期查询

    MySQL日期查询 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 WHERE T ...

  9. 2023年度低代码平台企业TOP50榜单公布—以开源起家的JeecgBoot格外亮眼

    近日,中国科学院主管.科学出版社主办的国家级核心期刊<互联网周刊>联合eNet研究院.德本咨询评选的<2023低代码企业50强>榜单正式公布.这一榜单的公布引起了业内外的广泛关 ...

  10. 【Python】【OpenCV】定位条形码(二)moments和HuMoments

    根据上一篇博客可知,单纯的通过求取最大面积而进行定位的局限性,因此我们接下来将通过cv2.moments()和cv2.HuMoments()这两个方法来在更复杂的环境中去找到我们的目标区域. cv2. ...