C'est la même raison qui pousse μJS à proposer les attributs mu-* et data-mu-*, que celle qui a poussé htmx à proposer hx-* et data-htmx-*.
Si tu as vraiment besoin que ton code HTML passe dans un validateur HTML sans erreur, tu utilises les attributs data-*.
Par contre, pour la plupart des gens ce n'est pas une nécessité absolue, et dans ce cas on est content d'avoir un code moins verbeux. Les navigateurs gèrent cela sans le moindre problème.
On peut remarquer que μJS et htmx ne sont pas les seuls à proposer des attributs personnalisés (dont les noms ne commencent pas par data-). C'est aussi le cas d'AlpineJS (x-data, x-show...), de VueJS (v-if, v-for...), d'Angular (ng-if, ng-click...), Svelte (on:click, bind:value...), Unpoly (up-target, up-follow...), Livewire (wire:click, wire:model...).
[^] # Re: Utiliser les "data-" attributes
Posté par Amaury Bouchard (site web personnel) . En réponse à la dépêche Sortie de μJS, une bibliothèque JavaScript légère pour dynamiser un site sans framework. Évalué à 4.
C'est la même raison qui pousse μJS à proposer les attributs
mu-*etdata-mu-*, que celle qui a poussé htmx à proposerhx-*etdata-htmx-*.Si tu as vraiment besoin que ton code HTML passe dans un validateur HTML sans erreur, tu utilises les attributs
data-*.Par contre, pour la plupart des gens ce n'est pas une nécessité absolue, et dans ce cas on est content d'avoir un code moins verbeux. Les navigateurs gèrent cela sans le moindre problème.
On peut remarquer que μJS et htmx ne sont pas les seuls à proposer des attributs personnalisés (dont les noms ne commencent pas par
data-). C'est aussi le cas d'AlpineJS (x-data,x-show...), de VueJS (v-if,v-for...), d'Angular (ng-if,ng-click...), Svelte (on:click,bind:value...), Unpoly (up-target,up-follow...), Livewire (wire:click,wire:model...).