Vue для классических сайтов

Данный сайт я строю по классической схеме, сервер генерирует HTML, а JavaScript предоставляет пользователю дополнительные функции. Таким образом, например, редактор статей отличной вписывается в эту концепцию, кроме того, поскольку редактор статей доступен только в административной части сайта, то отсутствует необходимость заботиться об индексации этой части сайта.

Сейчас я имею вопросы к публичной части сайта. В частности, страница отдельный статей подразумевает полную замену контента, как следствие - вся страница должны быть обёрнута в тел vuejs. Страница довольно богата на контент, это и собственно статья, так же и теги, и прочие дополнительный атрибуты статьи. Я уже не говорю про блок комментариев.

Как следствие компонент будет оборачивать собой всю эту область или необходимо обеспечить какой-то способ связи между компонентами - например через аппликейшен. Связь через корневой компонент мне не нравится, даже если оно будет происходить с помощью событий, но это какая то дичь, если честно.

Вот есть у нас структура vuejs, которая обеспечивает взаимодействие компонентов между собой и это рекомендуемый путь, ему следует придерживаться. Это значить, что мы должны создавать компонент который и будет обеспечивать функционал требуемой области - т.е. нам нужен компонент просмотра статьи. Из этого следует что мы должны обернуть всю область просмотра статей в vue компонент.

И тут возникает вопрос о загрузке данных в этот компонент. Поскольку компонент оказывается сложным, для рендера ему необходим большой объём данных. Это собственно статья, тред и его атрибуты, теги статьи и вероятно будет что то ещё. 

Саму статью можно поместить в слот, что позволит обеспечить индексацию этих данных. Контент текущей статьи будет получен в качестве слота, и на текущий момент в свойства компонента переезжают уже три параметра из числа перечисленных выше

Можно не рендерить статью на сервере, а предоставить её в качестве сырых данных, чтобы отрендерить её на клиенте. Так же сырыми можно поставить атрибуты и другую информацию, но в этом месте напрашивается серверный рендеринг, что выглядит костылём - непонятно какие преимущества даёт это подход в сравнение с rich-application. Можно загружать дополнительный данные по AJAX и это тоже лишнее. В общем, на данный момент я огорчён - будем искать решение.

Было бы здорово, если бы вы помогли найти мне решение в комментариях к этой статье, но я не сделал механику комментариев 😂

продолжение: Зачем нужен серверный рендеринг

Авторизуйтесь чтобы оставлять комментарии