Лучший способ структурировать повторно используемый код, используя Node.JS, E JS и интерфейс JS? - PullRequest
0 голосов
/ 27 мая 2020

Очевидно, обмен «Разработка программного обеспечения» был неправильным местом, чтобы задавать такой вопрос:

Я более или менее изучаю стек MEAN (еще не начал с Angular, поэтому сейчас использую обычную ваниль JS для внешнего интерфейса), а часть того, что я создаю для своего портфолио, - это конструктор форм с перетаскиванием.

В настоящее время в форме есть разделы, содержащие вопросы, которые могут содержать несколько вариантов, например а также несколько последующих / дополнительных вопросов (которые затем могут содержать свои собственные варианты, но не дополнительные).

E JS помогает мне с исходной визуализацией сохраненной формы с использованием вложенных for..of циклов, однако мой вопрос вступает в игру при добавлении новых элементов в форму.

В настоящее время у меня есть ванильный интерфейс JS, который просматривает некоторые теги template на странице, а затем заполняет их новыми разделы, вопросы и варианты.

Однако это не кажется очень DRY, потому что я использую по существу тот же logi c в E JS при первоначальном рендеринге t страницу (хотя и несколько раз).

Чтобы сделать мой код более пригодным для повторного использования, следует ли мне писать функции на бэкэнде, которые передаются в вызов E JS render как для первоначального рендеринга, так и затем доступный для внешнего интерфейса JS, или приведите переменную E JS, содержащую форму (из MongoDB), непосредственно во внешний интерфейс JS и используйте там функции как для первоначального рисования страницы, так и для добавления новые элементы ? Мы надеемся, что оба они будут использовать теги template в HTML. Один из них быстрее и / или безопаснее другого?

Другой вариант также может заключаться в использовании частичных файлов E JS для разделов, вопросов и опций для отображения страницы, но я не знаю, как включить это во внешний интерфейс JS для добавления новых элементов без использования template s, что по сути то, что я делаю сейчас.

1 Ответ

0 голосов
/ 31 августа 2020

Я сейчас прохожу через то же испытание.

Насколько я понимаю, ваш сценарий требует использования как рендеринга на стороне сервера (с использованием E JS), так и рендеринга внешнего интерфейса с использованием шаблонов HTML и вы хотите знать, как лучше всего подходить к go по этому поводу.

Короткий ответ: бросьте все на переднюю часть и сделайте там тяжелую работу.

Я использовал E JS компонентов (включает), и они просто не предназначены для взаимодействия. Поток данных в основном односторонний, и я не знаю об управлении состоянием.

Имейте в виду, что вам не нужно делать это для всего проекта, это можно сделать только для определенных страниц, где интерактивность очень высока. тяжелый.

Просто импортируйте Vue или любую другую структуру SPA на указанную страницу и действуйте так, как если бы это одностраничное приложение. Таким образом, вы не упустите преимущества на стороне сервера, когда они понадобятся вам на других страницах проекта.

Конечно, переход на полное разделение кода (API / SPA) было бы более традиционным способом, но я Я уверен, что есть причина, по которой вы вынуждены использовать рендеринг на стороне сервера.

Помогает то, что оба (сервер / интерфейс) используют JavaScript, что может не привести напрямую к совместному использованию кода, но обязательно сделает это проще написать необходимые функции аналогичными способами на бэкенде и переднем энде.

...