我正在使用一个 BS4 模板,该模板根据页面上的事件将类应用于<html>
和元素。我在这里<body>
尝试了 Vuejs 类和样式页面中的不同技术,但没有成功。我还尝试将值作为道具从 App.vue 传递到我作为组件拥有的侧边栏。
这是我必须要做的,并且 v-bind 不尊重根级别的值。
在 index.html 中
<body v-bind:class="{ sidebar-mini: this.$root.sidebarShrunk }">
在 main.ts(入口点)
new Vue({
data: {
sidebarShrunk: false,
},
router,
store,
render: (h) => h(App),
}).$mount('#app');
如下更新值没有任何作用,侧边栏迷你类不适用。
编辑
感谢下面的答案 - 这是有效的 - 但还有一个问题,它是最好的方法还是可以稍微重构一下。
new Vue({
data: {
sidebarShrunk: false,
},
watch: {
sidebarShrunk(sidebarShrunk) {
if (sidebarShrunk) {
document.body.classList.add('sidebar-mini');
} else {
document.body.classList.remove('sidebar-mini');
}
},
},
router,
store,
render: (h) => h(App),
}).$mount('#app');