Станислав Шабалин, ну вот блок с комментами можно сделать на реакте, для него не нужен ssr, пусть грузится как обычно, а для контента страницы блога это ни к чему
Станислав Шабалин, оправдано, когда на странице статичный контент, она грузится без лишней логики (запросы к базе и к другим источникам) на сервере, и отображается в браузере без надобности выполнить кучу javascript кода, дружелюбно влияет на CEO, плюс есть инструменты, которые могут нагенерить статичных страниц.
Не нужно использовать реакт на фронте просто для того, чтоб использовать реакт, там где это избыточно. Реакт и прочие подобные инструменты оправданы когда на странице есть динамически меняющиеся данные, подгружаемые асинхронно, куча элементов на странице, которые связаны какой-то бизнес логикой, всем этим рулить проще используя библиотеки/фреймворки
и да, на всякий случай, присваивая новое значение в this.totalOZON поле в колбэке промиса, внутри поле this.series: [{ data: <-- }] не обновится автоматически, в нем будет все также лежать старая ссылка на изначальный массив, поэтому смысла присваивать в функции data() { } значение this.totalOZON нет, это не даст нужного результата, если нужно обновлять series присваивай в resolve промиса данные туда руками
Глянь нет ли торрентов запущенных, помнится давненько дешманский длинк умирал от торрентов, если там не ограничить количество соединений, а так вся сеть вставала колом
Andrylomakin, один раз найди нормальный интернет, склонируй все нужные git репозитории с проектами, и настройки, потом git не будет заново все перекачивать, а будет подтягивать только изменения в файлах, это не должно сильно грузить канал, если конечно не перелопачивать проекты целиком по сто раз, и даже если сейчас интернет хреновый, можно коммитить локально, и потом при возможности запушить свои изменения
button.addEventListener('click', (e) => {
if (e.target.classList.contains('class1')) {
// first case
} else if (e.target.classList.contains('class2')) {
// second case
}
});
Да он останется, в обработчике получаешь event.target, смотришь какой сейчас на нем имеется класс, и делаешь соответствующие действия, все в одной функции, навешанной один раз при загрузке. Просто ты вешаешь обработчик не на какой-то класс, а на элемент на странице, который ты нашел по какому-либо классу, меняй не меняй потом эти классы, элемент остаётся тем же, и обработчик тот же