Изучаю тему SPA, кроме тяжелых turbolinks, vue-router, angular и прочих фреймворках и библиотек для реализации полноценного SPA ничего нет. Но точно могу реализовать абсолютно такой же функционал с помощью Laravel и $.load(), который по сути является аналогом $.get, который используют все SPA. Вопрос, надежно ли это? И почему не пишут легкий в реализации SPA без всяких фреймворках.
И почему не пишут легкий в реализации SPA без всяких фреймворках.
Как-то я уже подробно отвечал на этот вопрос.
Кратко: вы просто напишете еще один фреймворк в попытке написать с нуля. Либо напишете ужаснейший говнокод, который будет невозможно поддерживать.
Наверное потому-что ваш подход это не SPA приложение. Vue, Angular, React это в первую очередь клиентские приложения, в которых логика обрабатывается в браузере клиента. Да, они бывают изоморфными с первичным рендерингом на сервере. Но вся логика строится в браузере. Это абсолтно не тоже самое что делает turbolinks или jquery
Константин Б., В чем отличия понял, но не до конца понимаю так называемый "профит". Если писать обычный новостной сайт, но хочется чтобы страница не перезагружалась, не лучше ли использовать $.load() ? Не прогнётся ли он под высокой нагрузкой на сервер?
Поймите, что вы не обойдетесь одно лишь строчкой load()
Вам нужно будет писать обвязку, следить за слушателями событий и много чего еще.
Опять же – загружать будете что? Целую страницу, или отдельные части? Во втором случае на сервере нужны будут отдельные точки входа для получения этих частей. Своего рода АПИ.
Вы попробуйте расписать подробнее, как вы видите свой "фреймворк", попробуем обсудить =)
(Да-да, именно микрофреймворк и получится в итоге).
SPA подразумевает перенос логики на клиент. И именно для реализации этой логики и нужны фреймворки. А то, что для общения с сервером вы используете AJAX - это дело десятое.
Для простых страниц даже jquery не нужен. Есть нативный fetch(), который можно подпереть полифилом для старых браузеров.
Фреймворки же нужны для более сложной логики нежели асинхронная подгрузка и вставка в dom.
Carburn, с того, что вы в основную страницу вставляете блоки, как отдельные страницы. В терминологии Javascript это называется фреймы. Не путайте с HTML iframe
Sanes, вы несете бред. Никаких фреймов там нет, innerHTML меняется элементрным присваиванием. Реактивный фреймворк это вовсе про другие цели, про изменения состояния стейта.