Общие обсуждения > Компьютеры и интернет

Одностраничный сайт vs ммногостраничный

(1/1)

cetsalcoatle:
React позволяет создать удобный сайт на одной странице, но как быть когда контента очень много, например, сайт по изучению языков?

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

Или можно создать несколько html страниц и они будут рендериться одновременно? :what?

Квас:
Решение называется "декомпозиция", один из основных принципов программирования. :) Даже одну огромную страницу можно собрать по частям, так что каждая часть будет небольшой. С другой стороны, SPA и не предполагает, что сайт выглядит, как одна страница. Обычно он выглядит как нормальный сайт с разными страницами и переходами по ссылкам. Только на переходах страница не "мелькает", как на SMF форуме.

Квас:

--- Quote from: cetsalcoatle on 06 May 2024, 22:11:12 ---Или можно создать несколько html страниц и они будут рендериться одновременно? :what?

--- End quote ---

Я бы сказал, что реакт не предполагает мышления в терминах html-страниц. Его основной элемент - компонент. Конечно, некоторые компоненты могут соответствовать целым страницам и могут связываться с маршрутами. Но это частный случай.

cetsalcoatle:
Спасибо. :)

Квас:
В общем и целом, реакт отслеживает, что изменяется на странице, и перерисовывает только изменения. Например, страница может состоять из хедера, футера и тела. И предположим, что при нажатии на кнопку тело меняется: например, это будет другой компонент. Тогда реакт, со своей стороны, перерисует тело, а хедер и футер оставит. С точки зрения пользователя это похоже на то, что открылась новая страница, но без мелькания, и хедер и футер не меняются.

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

Navigation

[0] Message Index

Go to full version