Языковая политика

Общие обсуждения => Компьютеры и интернет => Topic started by: cetsalcoatle on 06 May 2024, 22:11:12

Title: Одностраничный сайт vs ммногостраничный
Post by: cetsalcoatle on 06 May 2024, 22:11:12
React позволяет создать удобный сайт на одной странице, но как быть когда контента очень много, например, сайт по изучению языков?

В редакторе кода всё идёт сплошным массивом и очень неудобно править блоки и контент. Есть для этого какое-то решение?

Или можно создать несколько html страниц и они будут рендериться одновременно? :what?
Title: Re: Одностраничный сайт vs ммногостраничный
Post by: Квас on 06 May 2024, 22:25:09
Решение называется "декомпозиция", один из основных принципов программирования. :) Даже одну огромную страницу можно собрать по частям, так что каждая часть будет небольшой. С другой стороны, SPA и не предполагает, что сайт выглядит, как одна страница. Обычно он выглядит как нормальный сайт с разными страницами и переходами по ссылкам. Только на переходах страница не "мелькает", как на SMF форуме.
Title: Re: Одностраничный сайт vs ммногостраничный
Post by: Квас on 06 May 2024, 22:28:11
Или можно создать несколько html страниц и они будут рендериться одновременно? :what?

Я бы сказал, что реакт не предполагает мышления в терминах html-страниц. Его основной элемент - компонент. Конечно, некоторые компоненты могут соответствовать целым страницам и могут связываться с маршрутами. Но это частный случай.
Title: Re: Одностраничный сайт vs ммногостраничный
Post by: cetsalcoatle on 07 May 2024, 00:42:35
Спасибо. :)
Title: Re: Одностраничный сайт vs ммногостраничный
Post by: Квас on 07 May 2024, 12:28:19
В общем и целом, реакт отслеживает, что изменяется на странице, и перерисовывает только изменения. Например, страница может состоять из хедера, футера и тела. И предположим, что при нажатии на кнопку тело меняется: например, это будет другой компонент. Тогда реакт, со своей стороны, перерисует тело, а хедер и футер оставит. С точки зрения пользователя это похоже на то, что открылась новая страница, но без мелькания, и хедер и футер не меняются.

Более того, из JS можно управлять историей браузера. На нижнем уровне это называется History API. Также существуют обёртки для библиотек/фреймворков: например, React Router для голого реакта, а в next.js встроен свой роутер. Они позволяют эмулировать многостраничный сайт с точностью до адресной строки. Например, когда пользователь кликает на ссылку, роутер, с одной стороны, заменит компонент тела страницы, а с другой стороны - заменит адрес в адресной строке. Так с точки зрения пользователя сайт получается многостраничный (только быстрее и без мелькания). При этом страница в действительности не перегружается, то есть сайт остаётся SPA.