React - 更改主题时应该使用 localstorage 吗?
React - Should I use localstorage when changing a theme?
我想为特定页面添加一个颜色主题,当单击按钮时它会为我着色,颜色主题将有 3 或 4 种原色,我的问题是,是否值得为此任务使用 localstorage?我希望选中的主题在页面刷新时不消失
您可以使用 css-变量来切换颜色主题。
我会说是,因为其他两个选项只有 sessionstorage
或 cookies
。
会话存储:
如果当用户关闭浏览器(或选项卡,取决于设置)时值消失,这对你来说没问题的话,这也是一个选项
饼干:
您也可以使用 cookie,但缺点是 cookie 总是发送到服务器。只要您不在服务器端对 cookie 做任何事情,这就是在浪费计算时间。
所以在我看来,localstorage
应该是正确的选择。
如果您使用的是 Redux,则可以使用 redux-persist npm i redux-persist
,它按照 Hoargarth 的建议使用本地存储。不同之处在于您不必在浏览器中管理设置和获取键值,相反,在您的 reducer 中定义您的颜色道具并发送一个操作以使用您的按钮处理程序更新它,redux-persist 将管理持久化刷新并关闭浏览器后的状态。
我想为特定页面添加一个颜色主题,当单击按钮时它会为我着色,颜色主题将有 3 或 4 种原色,我的问题是,是否值得为此任务使用 localstorage?我希望选中的主题在页面刷新时不消失
您可以使用 css-变量来切换颜色主题。
我会说是,因为其他两个选项只有 sessionstorage
或 cookies
。
会话存储: 如果当用户关闭浏览器(或选项卡,取决于设置)时值消失,这对你来说没问题的话,这也是一个选项
饼干: 您也可以使用 cookie,但缺点是 cookie 总是发送到服务器。只要您不在服务器端对 cookie 做任何事情,这就是在浪费计算时间。
所以在我看来,localstorage
应该是正确的选择。
如果您使用的是 Redux,则可以使用 redux-persist npm i redux-persist
,它按照 Hoargarth 的建议使用本地存储。不同之处在于您不必在浏览器中管理设置和获取键值,相反,在您的 reducer 中定义您的颜色道具并发送一个操作以使用您的按钮处理程序更新它,redux-persist 将管理持久化刷新并关闭浏览器后的状态。