vue3中使用provide/inject替换getCurrentInstance
之前项目里在main.js定义全局方法,组件里从getCurrentInstance()方法引入proxy,通过proxy调用全局方法
main.js
js
app.config.globalProperties.useDict = useDict
vue
<script setup>
import { getCurrentInstance } from 'vue'
const { proxy } = getCurrentInstance();
// 获取字典数据
const { sys_yes_no } = proxy.useDict("sys_yes_no");
</script>
这种方式是把proxy当this使用,在最新的文档里,getCurrentInstance以及被废弃
如果想在全局定义方法,在组件里使用,推荐用provide/inject替代
main.js
js
function test() {
console.log('rrrrr')
}
// 定义全局方法
app.provide('test', test)
vue
import { inject } from 'vue'
// 使用
const tt = inject('test')
tt()
备注
我不喜欢在全局定义方法,还是习惯哪里使用哪里引入方法
provide/inject不喜欢用,因为不好把控