Skip to content

Prise en charge des plateformes ​

Plateformes couvertes par la première version ​

PlateformeÉtatRemarques
H5✅ CompletTous les composants, toutes les fonctionnalités
Mini Programme WeChat✅ Complet (dégradations partielles)Les capacités de type desktop des composants à calque sont dégradées, voir le tableau ci-dessous
Mini Programmes Alipay / Douyin🚫 Non supporté dans la première versionAjoutés par plateforme après validation par compilation conditionnelle
App (nvue)🚫 Pas prévuLe moteur de rendu nvue diffère de webview, hors feuille de route

Matrice des capacités par composant ​

« Dégradation » signifie que les capacités non supportées par la plateforme sont supprimées par des gardes à la compilation (aucun code mort dans le paquet du Mini Programme), et non d'échec à l'exécution.

ComposantH5Mini Programme WeChatStratégie de dégradation / remarques
config-providerCompletCompletprovide/inject + variables CSS en ligne utilisables sur toutes les plateformes ; le mode sombre s'appuie sur la classe page.dark (pas de document)
button / tagCompletComplet—
iconCompletCompletSolution à base de police iconfont (le web utilise du SVG en ligne, voir « Différences de rendu des icônes » ci-dessous)
inputCompletCompletLe style de l'espace réservé passe par le prop placeholder-style (MP ne supporte pas ::placeholder)
checkbox / radio / switchCompletCompletDessiné en view (pas de composant natif, pour unifier le langage visuel lh)
form / form-itemCompletCompletLa logique de validation est dans le core en fonctions pures, zéro dépendance à la plateforme
selectCompletDégradéroot-portal + mesure sur deux images ; navigation clavier uniquement sur H5, MP via clic + scroll-view
dialogCompletDégradéroot-portal ; focus-trap / lockScroll uniquement sur H5, MP se rabat sur l'interception par le masque
tooltipCompletDégradéMesure sur deux images ; pas de hover, déclenchement sur MP par clic / toucher
message / loadingCompletCompletMotif de point de montage (le Mini Programme n'a pas de document, impossible de créer du DOM en JS)

Restrictions spécifiques au Mini Programme WeChat et alternatives ​

RestrictionSolution de remplacement
Balise <svg> non supportéeÀ la compilation, les icônes sont converties en police iconfont (base64 intégrée), rendues via <text class="lh-iconfont">
::placeholder non supportéProps placeholder-style / placeholder-class de input
Sélecteur universel *, sélecteurs d'attribut, :not(), :nth-* non supportésSanitisation à la compilation : * est transformé en flex + gap, les autres sont remplacés par des classes équivalentes
Pas de document / document.bodyCalques via root-portal ; services impératifs via le motif de point de montage
Pas de sémantique de focus clavierfocus-trap / navigation clavier non appelés, gardés par LH_IS_H5 ; les attributs aria restent publiés pour les lecteurs d'écran
transitionend peu fiableAnimations d'entrée / sortie via CSS transition + setTimeout pour aligner les durées
Composants pas encore créés à l'étape onLoadTous les appels de ref / mesures doivent attendre onReady

Version de base de WeChat ​

  • root-portal nécessite une version de base >= 2.25.2 (le montage des calques de select / dialog / tooltip en dépend).
  • Les versions inférieures se dégradent automatiquement vers un positionnement fixed dans la page (détecté via getLhLibVersion()) ; le calque est toujours là, seule sa hiérarchie est contrainte par le flux de la page.

root-portal et les plateformes type DingTalk ​

lh-root-portal utilise en interne une compilation conditionnelle en trois branches : H5 via <teleport to="body">, WeChat via <root-portal>, et les plateformes ne supportant pas root-portal (DingTalk, etc.) via un fixed dans la page. C'est un composant interne, l'utilisateur n'a pas à s'en soucier : il est décrit ici uniquement pour expliquer l'origine des différences de comportement des calques entre plateformes.