gpt4 book ai didi

javascript - 如何在 Vue 中创建动态的、非预定义的 CSS 样式(就像我们在 Angular 中所做的那样)

转载 作者:搜寻专家 更新时间:2023-10-30 22:23:43 24 4
gpt4 key购买 nike

在 Angular 中我们可以动态设置 css 属性,像这样:

<style ng-if="color">
.theme-color { color: {{color}}; }
.theme-background-color { background-color: {{color}}; }
.theme-border-color { border-color: {{color}}; }
</style>

在 Vue 中,我们可以修改 :class=... 但这将我们限制为预定义的类选项,而 :style... 则不允许我们使用类名。

有没有办法实现如上的动态CSS?或者我们是否必须对样式进行编码以使其包含所有颜色属性?

谢谢

最佳答案

假设这有某种用户颜色选择干预;我会将用户选择的颜色存储在状态中,因此它可以在全局范围内访问。

然后在您的组件中,您可以执行以下操作...

<app :style="themeStyles"></app>

export default {
computed: {
themeStyles () {
return {
color: store.state.themeColor,
backgroundColor: store.state.themeColor,
borderColor: store.state.themeColor
}
}
}
}

(伪代码以便快速提供示例)

显然,可以在您需要的任何组件上使用它 - 但它应该可以解决问题,只要您有办法存储用户对 themeColor 本身的输入并将其存储在状态中。

编辑:附加选项

JSS

关于javascript - 如何在 Vue 中创建动态的、非预定义的 CSS 样式(就像我们在 Angular 中所做的那样),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48964336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com