#node.js #pug
#node.js #pug
Вопрос:
Я новичок в pug, я прочитал документацию и разбираюсь во всем по ходу работы.
У меня есть динамические меню, и когда пользователь выбирает одно, ему необходимо загрузить соответствующую информацию на страницу.
Например:
- Пункт 1
- Пункт 2
- Пункт 3
- Пункт 4
Если я нажму на один из этих элементов, он перейдет к ‘localhost / item2’ или ‘localhost / item1’, в зависимости от того, на что вы нажмете.
Я знаю, что если я создам маршрут, допустим, «p», то это будет ‘localhost / p / item2’ или ‘localhost / p / item1’, и я смогу обрабатывать все эти запросы с помощью p/
и использовать item2
или item1
для получения соответствующих данных
Что я хотел бы сделать, так это иметь заголовок, который не будет обновляться, но «тело», которое будет изменять и обновлять выбранную информацию.
есть ли способ сделать это?
//- index.pug
doctype html
html
include includes/head.pug
body
h1 My Site
p Welcome to my super lame site.
include includes/foot.pug
Есть ли способ «перезагрузить / обновить» включает в себя без повторного рендеринга страницы?
Я также подумал, может быть, я мог бы передать информацию на страницу JavaScript на сервере, но я знаю только, как напрямую взаимодействовать с шаблоном pug.
Комментарии:
1. Вы должны выбрать либо использовать pug для рендеринга страниц на стороне сервера, либо библиотеку AJAX для рендеринга их на стороне клиента, это две разные парадигмы, которые плохо работают вместе, поскольку у вас будет дублированная логика представления.
Ответ №1:
Если я правильно понял, чего вы пытаетесь достичь, то это именно то, с чем справляются такие сервисы, как Angular, React или VueJS, поэтому я бы настоятельно рекомендовал использовать один из них.
Тем не менее, по сути, то, что делают эти фреймворки, — это просто использование jquery для соответствующего обновления DOM в ответ на события, исходящие либо от интерфейса, либо от серверной части. Если вы собираетесь делать это без помощи какого-либо фреймворка (я настоятельно не рекомендую, ваше время будет гораздо лучше использовано для изучения одного фреймворка, а не для эмуляции его поведения), у вас должен быть надлежащий способ обмена данными взад и вперед (т.Е. сокет.ввод-вывод), а затем соответствующий js во внешнем интерфейсе, чтобы либо информировать серверную часть о действиях, которые произошли во внешнем интерфейсе, либо анализировать события из серверной части и действовать в ответ.
Я надеюсь, что это поможет