Skip to content

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不喜欢用,因为不好把控

如有转载或 CV 的请标注本站原文地址