Dans Vue3, nous pouvons implémenter des variables globales via provide
et inject
, mais pour les dictionnaires globaux, nous avons besoin d'un package plus simple et plus facile à utiliser.
Voici un exemple d'encapsulation de fonctions de dictionnaire global basée sur Vue3 et TypeScript :
interface Dictionary {
[key: string]: string | number
}
const dictionary: Dictionary = {
gender: {
0: '女',
1: '男',
2: '保密'
}
// 其他字典项
}
export default function useDictionary() {
return {
getDictionary(key: string, value: string | number): string {
const dict = dictionary[key]
if (!dict) {
return ''
}
return dict[value] || ''
},
setDictionary(key: string, dict: Dictionary): void {
dictionary[key] = dict
},
deleteDictionary(key: string): void {
delete dictionary[key]
}
}
}
Dans le code ci-dessus, nous définissons une Dictionary
interface pour stocker chaque élément du dictionnaire, et des éléments de dictionnaire spécifiques peuvent être ajoutés ou modifiés en fonction des besoins réels. Dans useDictionary
la fonction, nous renvoyons trois méthodes : getDictionary
utilisée pour obtenir la valeur de l'élément de dictionnaire, setDictionary
utilisée pour définir l'élément de dictionnaire et deleteDictionary
utilisée pour supprimer l'élément de dictionnaire.
Lors de l'utilisation du package de fonctions de dictionnaire global, nous devons uniquement setup
l'utiliser dans la fonction Vue3 provide
pour l'injection globale, puis l'utiliser dans le composant qui doit utiliser l'élément de dictionnaire inject
pour l'obtenir.
Les exemples sont les suivants :
import {
defineComponent, provide, inject } from 'vue'
import useDictionary from '@/utils/dictionary'
export default defineComponent({
setup() {
const dictionary = useDictionary()
provide('dictionary', dictionary)
return {
// setup函数返回值
}
},
methods: {
getGenderLabel(gender: number): string {
const dictionary = inject('dictionary')
return dictionary.getDictionary('gender', gender)
}
// 其他方法
}
})
Dans le code ci-dessus, nous setup
injectons provide
la fonction de dictionnaire global dans Vue3 dans la fonction du composant, puis l'utilisons dans la méthode du composant inject
pour obtenir la fonction de dictionnaire et appelons getDictionary
la méthode pour obtenir la valeur de l'élément de dictionnaire.
Grâce à l'encapsulation ci-dessus, nous pouvons facilement accéder au dictionnaire global dans Vue3, améliorant ainsi la lisibilité et la maintenabilité du code.