Обновлять данные без обновления страницы pug nodejs

#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 во внешнем интерфейсе, чтобы либо информировать серверную часть о действиях, которые произошли во внешнем интерфейсе, либо анализировать события из серверной части и действовать в ответ.

Я надеюсь, что это поможет