vue3中如何优雅地在 setup 使用 globalProperties

本文探讨了在vue3的setup函数中如何优雅地使用globalProperties,由于setup中不能直接使用this,官方推荐的getCurrentInstance方法不被鼓励。文章提出结合provide/inject来解决这个问题,详细介绍了具体的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

vue3 已经发布到 v3.2.x 版了,在项目中也使用上了 vue3,总体感觉还是不错的。vue3 中使用Proxy 来实现响应式数据,解决了 vue2 中的部分性能损耗、无法监听动态添加的属性、无法监听数组元素值的变化。vue3 中的模板可以包含多个根节点、v-model 参数化等等特性也很值得肯定。还没有使用 vue3 的开发者,推荐赶快上手试用。

二、令人困惑的 globalProperties

vue3 中每个 vue 的实例都会对外暴露一个包含此应用实例的配置设置的 config 对象。在挂载应用之前,你可以修改其 property。其中的 globalProperties 是一个可以在应用的任何组件实例中访问的全局 property。组件的 property 在命名冲突具有优先权。这个属性被用来代替vue2中对Vue.prototype的扩展。

在官方文档中只是说明了使用该属性替代vue2中的Vue.prototype扩展的方式,并没有说明在组合式 API 中如何使用,在选项式 API 中直接用this调用即可。

app.config.globalPropterties.$http = () => {}

// options API 方式
export default {
    methods: {
        getList() {
            this.$http()
            ...... // 此处省略其他代码
        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仰望星空的代码

创作不易,您的支持是我的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值