我的default.vue布局中有这种代码的平静
beforeCreate() {
console.warn('Cookie val=' + Cookies.get('dte'));
console.warn('Cookie val is for dark: ' + (Cookies.get('dte') === 'true'));
var userDarkThemeEnabled = this.$store.getters.isDarkThemeEnabledUser;
console.warn('created userDarkThemeEnabled:' + userDarkThemeEnabled);
if (userDarkThemeEnabled == null) {
this.goDark = false;
return;
}
this.goDark = userDarkThemeEnabled;
},
在控制台我看到
**Nuxt SSR**
Cookie val=undefined
Cookie val is for dark: false
created userDarkThemeEnabled: false
**Client Side**
Cookie val=true
Cookie val is for dark: true
created userDarkThemeEnabled: true
因为这个 beforeCreate 钩子在页面重新加载时为 SSR 和客户端调用了两次,所以我在 Vuetify 中的颜色主题有些闪烁,因为 SSR 的变量 goDark 取值为 false 并且 vuetify 应用浅色主题,然后 goDark 变为真并且 vuetify 将主题更改为深色。
如果我对 this.goDark=true 这样的值进行硬编码,它将在页面重新加载期间应用于 SSR 和客户端。所以我的问题是有什么方法可以在 SSR 中为匿名用户(尚未登录但已经更改主题)存储值?