Skip to content

Message (notification) ​

Service global de messages. Adopte le motif de point de montage — le Mini Programme ne pouvant pas créer de DOM en JS, la page doit d'abord contenir le composant point de montage.

Placer le point de montage ​

À placer une fois dans les pages nécessitant des messages (ou dans un composant racine enveloppant permanent) :

vue
<template>
  <lh-config-provider>
    <view><!-- Contenu de la page --></view>
    <lh-message />
  </lh-config-provider>
</template>

Appels ​

ts
import { useLhMessage } from '@lh-ui/uniapp'

const message = useLhMessage()

message.success('Enregistré avec succès')
message.info("Message d'information")
message.warning('Avertissement')
message.danger('Erreur')
message.error('Erreur (alias de danger)')

// Message de chargement sans fermeture automatique (duration: 0), à fermer manuellement
const handle = message.loading('Chargement...')
// ... une fois l'opération asynchrone terminée
handle.close()

// Tout fermer
message.closeAll()

Avertissement en l'absence de point de montage

Si vous appelez useLhMessage() alors que la page ne contient pas <lh-message />, un console.error explicite est émis en développement, sans dégradation silencieuse. C'est un choix délibéré : la dégradation silencieuse transformerait « l'appel semble réussir, mais rien ne se passe » en bug invisible.

Méthodes ​

MéthodeDescriptionParamètres
(Appel direct)message('xxx') équivaut à message.info('xxx')(options: LhMessageOptions | string)
success / info / warning / danger / errorAffiche le message du type correspondant(content: string, options?: Partial<LhMessageOptions>)
loadingAffiche un message de chargement qui ne se ferme pas automatiquement (duration: 0), et renvoie un handle à fermer manuellementIdentique
closeFerme le message d'identifiant id(id: number)
closeAllFerme tous les messages—

LhMessageOptions ​

PropDescriptionTypeValeur par défaut
contentTexte (requis)string—
typeType'success' | 'info' | 'warning' | 'danger' | 'loading''info'
durationDurée d'affichage (ms) ; 0 = pas de fermeture automatiquenumber3000
showCloseAfficher le bouton de fermeturebooleanfalse
offsetDécalage par rapport au haut (px)number—
onCloseCallback de fermeture() => void—

Configuration globale ​

ts
const message = useLhMessage()
message.config({ duration: 2000, max: 5, offset: 20 })
ConfigurationDescriptionValeur par défaut
durationDurée d'affichage par défaut (ms)3000
maxNombre maximal de messages à l'écran—
offsetDécalage par rapport au haut—

Différences avec la version Vue3

  • Pas d'appendTo : le web accroche le contenu à document.body, notion qui n'existe pas dans le Mini Programme ; l'emplacement du montage est déterminé par la position de <lh-message /> dans la page.
  • Les animations d'entrée / sortie utilisent CSS transition + setTimeout pour aligner les durées (transitionend est peu fiable dans le Mini Programme).
  • Le composant de type notification (Notification) est absent de la première version, remplacez-le par Message.