【小白成长记】vue3项目中通过globalProperties定义与使用全局数据

时间:2024-03-21 10:14:25

vue3项目中有一个全局的字典文件dic.js,里面定义的都是一些公共字段映射值,如:

dic.js
export default {
	typeMap:{
		1:'自动',
		2:'手动'
	},
	...
}

main.js中:

  1. 首先引入这个文件
  2. 通过createApp()创建组件实例app
  3. 将dic暴露出来的数据对象挂载到 app.config.globalProperties 的一个$dic 属性上
main.js

import { createApp } from 'vue'
import dic from './dicFolder/dic.js'

const app = createApp(App)
app.config.globalProperties.$dic = dic

在需要使用 dic 中的字典数据的vue文件中:

  1. 引入 getCurrentInstance
  2. 调用 getCurrentInstance,并从结果中解析出proxy(必须用proxy),再从proxy解析到自己定义的 $dic ,这样就可以在js中或模板中直接使用dic里面定义的数据了
test.vue

import { getCurrentInstance } from 'vue'
const { proxy: { $dic } } = getCurrentInstance()

console.log($dic.typeMap)