Vue3里面全局配置

= =其实这个问题很早之前就遇到了,但是当时并没有解决,然后就放在js文件里面引入就不了了之了,今天去csdn博客上晨爱衿文老哥回答了我于是我又玩了下。

一般网上的教程
//在main.js中注册你想注册的东西比如:
app.config.globalProperties.hello = ()=>{
    console.log("hello,world");
}
//然后在vue文件中通过getCurrentInstance解构出ctx进行获取比如:
import { getCurrentInstance } from "vue";
//在setup中这样写
setup() {
    let {ctx} = getCurrentInstance()
    ctx2.hello()
    return{
        
    }
}
//这样就能在打印出hello,world,

但是在开发环境中确实是这样没错,一旦build之后崩了找不到hello方法!,于是便打印出开发环境中和生产环境中ctx的不同

在这里插入图片描述

生产环境

在这里插入图片描述

开发环境

我们发现ctx被改变了,难怪找不到!

大佬提供的方法
//还是在main.js中注册你想注册的东西比如:
app.config.globalProperties.hello = ()=>{
    console.log("hello,world");
}
//然后在vue文件中通过getCurrentInstance解构出appContext进行获取比如:
let {appContext} = getCurrentInstance()
let {hello} = appContext.config.globalProperties
hello()
//这样在开发环境下和生产环境下都打印出了hello,world

虽然并不知道解决原理,但是这样确实是可行的,本来想记录在工作记录2的,但是网上搜了好多方法还是ctx的方法,所以就单独写了一下记录,希望有大佬能解释一下。

Logo

前往低代码交流专区

更多推荐