Вам не нужно «учить» их, но многие люди и компании используют их. Основным преимуществом является возможность иметь весь ваш сайт на одной веб-странице, где вы просто изменяете данные, и он обрабатывает изменение элементов на странице для вас. Например, вы можете просто подумать: «поместите здесь имя пользователя, а когда они нажмут на кнопку, добавьте еще одно поле списка», но вам больше не нужно думать о «получить этот элемент DOM, установите его innerHTML для имени пользователя». и когда они нажимают кнопку, создайте новый элемент DOM для ввода, еще один элемент для метки, получите элемент контейнера, добавьте новые дочерние элементы ". Это также позволяет вам более легко связывать данные с элементами DOM, так что вы можете просто сказать «это поле для переменной« numberOfItems »» вместо того, чтобы беспокоиться о захвате элемента DOM и его значения и сохранении его в numberOfItems, когда вам это нужно;с React / Angular / и т. д. эта переменная всегда будет актуальна с учетом введенных пользователем данных без необходимости ее обновления.
TL; DR: фреймворки не нужны, но они помогают автоматически обрабатывать множество общих и утомительных манипуляций DOM для васболее оптимизированным способом, чем вы могли бы реализовать самостоятельно, с меньшим количеством кода для вас, и все на одной странице вместо того, чтобы загружать страницу каждый раз, когда вы хотите отобразить новые данные или новый макет.