从子组件触发应用级别样式更改

Posted

技术标签:

【中文标题】从子组件触发应用级别样式更改【英文标题】:trigger app level style changes from a child component 【发布时间】:2020-12-09 21:59:13 【问题描述】:

当我在子组件中时,我想将整个页面背景(包括app-nav-bar)更改为与默认颜色不同的颜色。

当我移动到不同的组件时,应该返回默认样式。

大家有什么想法吗?

【问题讨论】:

您是否使用 Bool 值来切换该子组件?还是您使用其他方法来激活子组件? 我要使用路由器去子组件 【参考方案1】:

也许你需要Vuetify theme? 主题可以包含一组颜色

https://vuetifyjs.com/en/customization/theme/

您可以通过以下方式更改黑白主题 this.$vuetify.theme.dark = true/false 在组件中

【讨论】:

但是主题如何改变应用程序的整个背景(包括应用程序导航栏)?它只会改变容器。对吗? @chaitanyam 这取决于你如何使用主题,你可以使用computed 属性来设置你需要的任何元素的backgroundColor【参考方案2】:

根据您对我的评论的回答,这可能是您想要做的: 设置 Vuex 存储并在其中存储带有颜色代码的变量。 通过这种方式,您可以从应用程序中的任何位置访问这些颜色。 然后,在您的应用程序中,您可以使用以下命令检查当前路线:

this.$route

然后您可以检查路线是否与您要更改颜色的路线相匹配。 然后将颜色应用到所有元素。

PS。 如果您只想更改 app.vue 中可以找到的元素,则根本不必将变量存储在 store 中,但您只需签入路由器并相应地分配颜色。

希望这对您有所帮助!

【讨论】:

以上是关于从子组件触发应用级别样式更改的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义事件从子组件更改变量的状态

在 React Native 中将状态从子组件传递到父组件

如何从子组件更改 react-komposer (meteor) 中的订阅查询参数?

从子组件样式化角度材料组件

根据应用顶部的状态更改样式组件样式

This.props.history 未定义,如果从子组件调用[重复]