Single Page Application.
Основная идея, все необходимое должно быть на одной странице но скрыто (буквально все страницы сайта в виде элементов на странице но display:none а 'текущая' включается). В особо извращенных (к сожалению это уже норма) ситуациях вся страница полностью формируется заново на каждый чих скриптом.
Состояние можно хранить в URL в идентификаторе anchor (все что после ссылки после символа #, по идее это должен быть идентификатор элемента на документе,тогда страница к нему должна проскролироваться, но если элемента не существует, это не считается ошибкой) так и называется anchor navigation, браузеры корректно поддерживают работу с историей.
Данные загружают и передают ajax запросами - штатным Fetch API или XMHttpRequest либо основанными на них библиотеками, например в JQuery ajax