今天把Setting的几个参数值配置修改到保存至cookie。思路是先从cookie中获取用户的配置(如果从后台取数据,在用户登录时需要先写入cookie,用户没有自定义配置直接初始化默认配置)。通过Swtich组件修改配置状态,写入后台(如果需要),同时修改cookie并修改vuex的state。
本来不复杂,但是修改后发现Sidebar的Logo部分在修改后不生效,经过排查,发现因为Switch组件修改后,boolean的true/false变成了额"true"/"false",在Logo部分v-if指令处理时,字符串会被识别为true。于是在vuex的state中获取时,修改判断一下,代码如下:
const state = {
theme: Cookies.get("theme") || variables.theme,
showSettings: showSettings,
tagsView: Cookies.get("tagsView")
? Cookies.get("tagsView") === "true"
: tagsView,
fixedHeader: Cookies.get("fixedHeader")
? Cookies.get("fixedHeader") === "true"
: fixedHeader,
sidebarLogo: Cookies.get("sidebarLogo")
? Cookies.get("sidebarLogo") === "true"
: sidebarLogo
};
修改后测试正常。