Es muy común ver Javascript vinculado a ciertos selectores para buscar elementos, almacenar datos y escuchar eventos. También es común ver estos mismos selectores utilizados para el estilo.
jQuery (y su motor selector Sizzle) admiten y promueven esto al hacer referencia a elementos con sintaxis de tipo CSS. Como tal, esta técnica es particularmente difícil de "desaprender" (o refactorizar) al construir proyectos.
He llegado a comprender que esto es el resultado de la historia del desarrollo de HTML y Javascript, y que los navegadores se han creado para consumir / analizar / generar de manera eficiente este tipo de acoplamiento. Pero a medida que los sitios web se vuelven cada vez más complejos, esta realidad puede introducir dificultades para organizar y mantener estas capas separadas.
Mi pregunta es: ¿puede y debe evitarse esto en los sitios web modernos?
Si soy nuevo en el desarrollo front-end y deseo aprender las cosas 'de la manera correcta', ¿vale la pena aprender a desacoplar y evitar tales dependencias desde el principio? ¿Esto significa evitar jQuery a favor de una biblioteca que promueva una estructura más desacoplada?