Vue3系列(十六)之定义全局函数和变量

566 阅读1分钟

在vue3中,已经没有了prototype属性,所以我们main.js中使用的app.config.globalProperties去定义全局函数和变量

image.png

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())