Hola Lionel,
Cada uno tiene su ventaja, depende mucho de la aplicación que está desarrollando y qué características serán más útiles para su proyecto.
Una ventaja del state :hover
es que se desactiva automáticamente cuando el mouse se mueve para fuera del elemento, de esta manera, las estilizaciones aplicadas en :hover
se desactivan automáticamente.
Ahora con JavaScript, también necesita definir un event onmouseout
para que los eventos/estilizaciones aplicadas con el onmouseover
sean desactivadas.
Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios