#javascript #reactjs #redux #local-storage #themes
#javascript #reactjs #redux #локальное хранилище #темы
Вопрос:
Я хочу добавить цветовую тему для определенной страницы, которая будет окрашивать меня при нажатии кнопки, цветовая тема будет иметь 3 или 4 основных цвета, мой вопрос в том, стоит ли использовать localstorage для этой задачи? Я хочу, чтобы выбранная тема не исчезала при обновлении страницы
Ответ №1:
Если вы используете Redux, вы можете использовать redux-persist npm i redux-persist
, который использует localstorage, как предложил Хоаргарт. Разница в том, что вам не нужно управлять настройкой и получением значения ключа в браузере, вместо этого определите свой цветовой реквизит в своем редукторе и отправьте действие для его обновления с помощью обработчика кнопок, а redux-persist будет управлять сохранением вашего состояния после обновления и закрытия браузера.
Ответ №2:
Я бы сказал, да, поскольку два других варианта — это только sessionstorage
или cookies
.
Sessionstorage: это тоже было бы вариантом, если для вас все в порядке, если значение исчезает, когда пользователь закрывает свой браузер (или вкладку, в зависимости от настроек)
Файлы cookie: вы также можете использовать файлы cookie, но недостатком будет то, что файлы cookie всегда отправляются на сервер. И пока вы ничего не делаете с файлом cookie на стороне сервера, это пустая трата вычислительного времени.
Так что, на мой взгляд, localstorage
так и должно быть.
Ответ №3:
вы можете использовать css-переменную для переключения цветовой темы.
Комментарии:
1. Переменные CSS могут быть полезны, если все, что вы хотите сделать, это просто временно переключить цвета. Тем не менее, Synchro, в частности, спросил, является ли localStorage лучшим способом для этого. Поэтому я считаю, что это не совсем отвечает на первоначальный вопрос.