添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

解决方法
主要是css中用v-bind
在这里插入图片描述

官方用法
https://v3.cn.vuejs.org/guide/class-and-style.html#%E7%BB%91%E5%AE%9A-html-class
写的是直接在样式上绑定,而不是在下面整个的style样式中修改(至于为什么在style标签内能够直接修改不清楚原理)
在这里插入图片描述
思路一:多些几个不同样式的class名,然后动态切换绑定的class名,但我这个组件封装样式都差不多,只有颜色和圆角修改了,不想写太多重复的样式
在这里插入图片描述

思路二:直接修改变量的信息,然后样式共用一个class类名
在这里插入图片描述
调用
穿参即可
在这里插入图片描述

参考链接
1.vue3中css使用data中的变量
https://blog.csdn.net/weixin_45892086/article/details/114830902

2.怎么在vue的style标签里面使用变量?
思考启发
https://segmentfault.com/q/1010000015375955

软件系统中,会有一些成组的常量 ,来描述业务实体的属性,如性别、证件类型、审批状态等。我们通常称之为数据字典,作为系统后台管理的一个独立功能,来维护字典类型以及对应的字典 。后端功能和实现都比较简单,没什么好说的,本文档重点要说的是 前端 封装 。 对于数据字典, 前端 展现往往有三种常用的形式,下拉列表、单选按钮组和复选框组,其中,最常用是下拉列表,这里就以下拉列表的实现为例来说明,其他两种类似,不重复描述。 直接使用select 组件 ,是不是可以呢?答案是可以用,但用起来比较繁琐,需要在页面加载的时候,调用后端API接口拿数据,在data中定义存放字典数据的变量,并且一个实体编辑页面,使用到字典属性往往不止一个,三五个也比较常见,这时候,需要定义多个变量来存放字典项以及加载数据,开发工作量变大且容易出错。 那有没有办法让使用变得更方便呢?答案也简单,就是自定义 封装 一个 组件 来实现。我们的目标是传入一个数据字典的类型编码, 组件 内部调用后端API,完成数据的加载与存储,在选择项变化时,自动更新绑定的对应的业务实体的属性 。同时,在业务实体的编辑页面,也能自动绑定和显示已选择的字典项。 class="p1" :style="{'--width':width,'--height':height,'--background':bgc,...objStyle}" >obj2====={{obj2}}</p> </template> <script&gt
computed: { computedClass() { return `my-button my-button-${this.type} ${this.disabled ? 'my-button-disabled' : ''}` methods: { handleClick() { if (!this.disabled) { this.$emit('click') </script> <style scoped> .my-button { border: 1px solid #ccc; padding: 5px 10px; border-radius: 3px; cursor: pointer; .my-button-default { background-color: #fff; color: #333; .my-button-primary { background-color: #0 07 bff; color: #fff; .my-button-disabled { opacity: 0.5; cursor: not-allowed; </style> 这个 组件 具有以下特点: - 可以接收`type`和`disabled`两个属性,分别表示按钮类型和是否禁用 - 通过计算属性`computedClass`来根据属性 动态 生成 CSS 类名,从而实现样式的 动态 切换 - 当按钮被点击时,先判断是否禁用,如果没有禁用则触发`click`事件 使用方式: ``` vue <template> <my-button type="primary" :disabled="isDisabled" @click="handleClick"> {{ buttonText }} </my-button> </template> <script> import MyButton from './MyButton. vue ' export default { components: { MyButton data() { return { isDisabled: false, buttonText: 'Click me' methods: { handleClick() { alert('Button clicked') </script>