Vue3+TS encapsule les fonctions de dictionnaire global

Dans Vue3, nous pouvons implémenter des variables globales via provideet 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 Dictionaryinterface 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 useDictionaryla fonction, nous renvoyons trois méthodes : getDictionaryutilisée pour obtenir la valeur de l'élément de dictionnaire, setDictionaryutilisée pour définir l'élément de dictionnaire et deleteDictionaryutilisée pour supprimer l'élément de dictionnaire.

Lors de l'utilisation du package de fonctions de dictionnaire global, nous devons uniquement setupl'utiliser dans la fonction Vue3 providepour l'injection globale, puis l'utiliser dans le composant qui doit utiliser l'élément de dictionnaire injectpour 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 setupinjectons providela fonction de dictionnaire global dans Vue3 dans la fonction du composant, puis l'utilisons dans la méthode du composant injectpour obtenir la fonction de dictionnaire et appelons getDictionaryla 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.

Je suppose que tu aimes

Origine blog.csdn.net/qq_27244301/article/details/131454299
conseillé
Classement