在vue3中,已经没有了prototype属性,所以我们main.js中使用的app.config.globalProperties去定义全局函数和变量
Vue2 写法
// main.js
Vue.prototype.$request = () => {}
Vue3 写法
// main.js
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
app.config.globalProperties.$request = () => {}
app.mount('#app')
在页面中使用
setup语法糖中读取app.config.globalProperties
第一种方式:
import { getCurrentInstance, ComponentInternalInstance } from 'vue';
const { appContext } = getCurrentInstance()
console.log(appContext.config.globalProperties.$request);
第二种方式(推荐):
推荐第二种方式
import {getCurrentInstance} from 'vue'
const app = getCurrentInstance()
console.log(app?.proxy?.$request())