【发布时间】:2019-09-18 08:03:25
【问题描述】:
我的一个布局中有以下代码。
bodyAttrs: {
class: this.$store.state.user.theme + '-scheme'
}
不幸的是,我使用的是旧的引导主题 css。我不想重做,所以我必须想出一些解决方法。
bootstrap 主题的主题颜色附加到 body 标记。不幸的是,body 标签在 nuxt 中是不可以的。
我注意到的是,刷新页面时会使用基本状态值呈现。
例子:
//store/index.js <- not modular
var state = () => ({
user: {
id: 0,
avatar: 'default.jpg',
status: 'offline',
nickname: 'Guest',
admin: false,
theme: 'brownish' //-> this is the value
}
})
整个页面使用用户详细信息进行渲染,但主题变量未放入渲染中。如果我转到另一个页面(ajax 路由),页面将更新为正确的颜色。
基本上页面加载为棕色,然后在后续页面上加载为蓝色。如果页面被刷新,那么颜色会恢复为棕色,然后在后续页面上它会再次变为蓝色。
如何让 SSR 显示正确的 bodyAttr?
我正在使用 vuex-persistedstate 和 cookie 都是客户端 nuxt 服务器没有任何会话,因为这是在单独的域(api)上处理的
【问题讨论】:
-
我也有同样的问题。我今天开了一个关于这个的问题:github.com/nuxt/nuxt.js/issues/5853
标签: vue.js vuex server-side-rendering nuxt.js