Отреагировать(Next.js) условно визуализировать только один раз

#reactjs

Вопрос:

Я хотел создать страницу приветствия, которая исчезнет через несколько секунд, и я нашел на YouTube видео, в котором было что-то подобное, но оно больше похоже на загрузчик. Проблема в том, что мне нужно, чтобы эта страница приветствия появлялась только один раз, при первом посещении пользователем моего веб-сайта, а не каждый раз, когда пользователь перезагружает страницу. В следующем коде я использую движение фрейма для анимации страницы приветствия, которая автоматически исчезает, когда анимация заканчивается, но, конечно, она будет повторно отображаться при каждой загрузке страницы.

 export default function Home() { const [loading, setLoading] = useState(true);  useEffect(() =gt; {  loading  ? document.querySelector('body').classList.add('loading')  : document.querySelector('body').classList.remove('loading'); }, [loading]); return (  lt;AnimatePresencegt;  {loading ? (  lt;motion.div key="loader"gt;  lt;Loader setLoading={setLoading} /gt;  lt;/motion.divgt;  ) : (  

Как я могу этого достичь? Я думал о том, чтобы установить файл cookie или использовать localStorage, пока пользователь входит на страницу, и выполнить условный рендеринг с помощью этого, но это не сработало.

Комментарии:

1. Вы должны сохранить файл cookie или значение в localStorage после того, как пользователь посетил ваше приложение. Считывайте данные из локального хранилища при загрузке приложения.

Ответ №1:

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

Вы можете сохранить это в локальном хранилище или кэше.

Использование локального хранилища :

Когда пользователь посетил веб-страницу, храните информацию с:

 window.localStorage.setItem(name, content);  

Каждый раз при отображении страницы проверяйте, установлена ли информация с:

 window.localStorage.getItem(name);  

Пример :

Установите информацию в локальное хранилище:

 window.localStorage.setItem('visited', true);  

Посмотрите, посещали ли вы его раньше:

 let visited = window.localStorage.getItem('visited'); !visited amp;amp; Component ...  

Комментарии:

1. Я пробовал, но, как я понял, next.js не поддерживает локальное хранилище. Я ищу обходной путь, спасибо за ваш комментарий, я думаю, что добиваюсь некоторого прогресса.