# Chargement
Voile de chargement, deux usages : le service LhLoading.show() (plein écran ou ciblé, renvoie { close }), ou la directive v-loading posée directement sur un élément.
Voile de chargement
<template>
<div class="demo-col">
<div class="demo-row" style="gap: 12px; flex-wrap: wrap">
<LhButton type="primary" @click="showFull">Voile plein écran (service)</LhButton>
<LhButton @click="showLocal">Voile localisé (service)</LhButton>
<LhButton @click="toggleDirective">Directive v-loading ({{ loading ? 'Désactiver' : 'Activer' }})</LhButton>
</div>
<div
ref="panel"
class="demo-note"
v-loading="loading"
style="
position: relative;
height: 140px;
border: 1px dashed var(--lh-border-color, #d9d0c2);
border-radius: 8px;
margin: 0;
"
>
<p style="padding: 12px; margin: 0">Le voile directive est posé sur cet élément (position: relative est fourni par le style en ligne).</p>
</div>
<p class="demo-note">
LhLoading.show sans target couvre tout l'écran ; avec target, le voile s'attache à l'élément indiqué ; la directive v-loading est enregistrée via Vue.use(LhLoading).
</p>
</div>
</template>
<script>
export default {
data: () => ({
loading: false,
}),
methods: {
showFull() {
const handle = LhLoading.show({ text: 'Rendu haute définition…' })
setTimeout(() => handle.close(), 1500)
},
showLocal() {
const handle = LhLoading.show({ target: this.$refs.panel, text: 'Chargement local' })
setTimeout(() => handle.close(), 1500)
},
toggleDirective() {
this.loading = !this.loading
},
},
}
</script>
# API de service
// Sans target, le voile couvre tout l'écran
const handle = LhLoading.show({ text: 'Rendu en cours…' })
setTimeout(() => handle.close(), 1500)
// Attaché à un élément précis (l'élément doit être en position: relative)
LhLoading.show({ target: el, text: 'Chargement local', background: 'rgba(0,0,0,.5)' })
Vue.use(LhLoading) enregistre la directive v-loading : <div v-loading="isLoading" />, dont la valeur est false | string | LhLoadingOptions.
# Loading Props
Props du composant de voile (LhLoadingMask) ; les options de LhLoading.show transmettent les champs de même nom :
| Propriété | Description | Type | Valeur par défaut |
|---|---|---|---|
| fullscreen | Plein écran (true lorsque la cible est body) | boolean | false |
| text | Texte du voile (pack de langue loading.text si non transmis) | string | — |
| background | Couleur de fond du voile (valeur CSS background) | string | — |
| zIndex | Niveau d'empilement | number | — |
| spinner | Affiche l'icône rotative (true par défaut) | boolean | true |
| sx | Raccourci de mise en page sx | — | — |
Copyright © 2024-2026 FengMo WenXue