You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Vue.js 3结合Quasar框架时无法访问app.config.globalProperties的问题求助

解决Vue 3 + Quasar中全局属性无法访问的问题

你的问题核心在于Quasar boot文件的用法错误——你手动创建了一个全新的Vue应用实例,而没有使用Quasar框架已经初始化好并传递给boot文件的那个实例,导致你挂载的全局属性根本没附加到实际运行的应用上,自然在组件里访问不到。

正确的修改步骤:

  1. 重构/src/boot/gfunc.js文件:
    不需要手动导入createAppVue,Quasar会自动将当前应用的实例通过上下文参数传递给boot文件的导出函数,我们直接使用这个实例即可:

    export default ({ app }) => {
      app.config.globalProperties.$module = 'foo'
    }
    
  2. 保持quasar.conf.js的boot配置不变:

    boot: ['gfunc'],
    
  3. 组件中的代码无需修改:

    beforeCreate : function () { console.log(this.$module); }
    

重新运行项目后,控制台就能正常输出foo了。

额外说明(针对Composition API场景):

如果你后续在组件的setup()函数中需要访问全局属性,不能直接用this,需要通过getCurrentInstance()获取:

import { getCurrentInstance } from 'vue'

setup() {
  const { appContext } = getCurrentInstance()
  console.log(appContext.config.globalProperties.$module) // 输出foo
}

内容的提问来源于stack exchange,提问作者Shahid Ghafoor

火山引擎 最新活动