Le fait que nous pouvons désormais créer un "bouton" personnalisé directement dans le navigateur, celui qui n'a pas le bagage historique de , ou la rigidité déroutante du Jack-of-All-Trades , est quelque chose qui devrait être célébré. Dans certains cas, nous n'avons même plus besoin d'inclure des éléments de forme indigènes dans notre Dom Shadow, grâce à l'API ElementSinternals. ElementInternals gère à la fois Aria et Form Association, au niveau de la plate-forme. Cela signifie que les formulaires indigènes peuvent traiter les éléments personnalisés de la même manière que tout autre contrôle de formulaire, avec validation du champ, association d'étiquettes et soumission de valeur incluse. Ce n'est pas encore une solution parfaite, mais c'est mieux que tout ce que nous avons eu avant, et beaucoup de gens travaillent très dur pour l'améliorer pour tout le monde.
Les composants basés sur le framework ne peuvent littéralement pas le faire. S'ils prétendent qu'ils le peuvent, cela signifie qu'ils construisent soit des éléments personnalisés enveloppés dans des JS supplémentaires, soit ils font beaucoup de levage pour reproduire ce qui est déjà disponible dans le navigateur.
J'ai toujours eu des problèmes avec les frameworks frontaux, c'est pourquoi je choisis de ne pas les utiliser. Je trouve qu'ils facilitent dangereusement un trou trop grand pour sortir, surtout lorsqu'ils apportent leurs propres abstractions qui obscurcissent ce qui est réellement rendu sur la page. Il y a trop de "magie" qui se produit, et je n'apprécie pas les vibrations "Trust Me, Bro" que je tire de la fonction de certains frameworks (Hooks, JSX, etc.).
Pour conclure, je peux compter le nombre de fois où j'ai dû travailler professionnellement avec React, Vue et Angular combinés d'une part. Je suppose que celui que j'ai le plus utilisé était Vue, et même alors, ce n'est que quelques mois avant de commencer à construire des éléments personnalisés en 2020.
Je n'ai vu aucune raison convaincante de revenir en arrière.