绑定class

vue 收藏
0 32

你可以在对象中写多个字段来操作多个 class。

此外,:class 指令也可以和一般的 class attribute 共存。举例来说,下面这样的状态:

const isActive = ref(true)

const hasError = ref(false)

<div
  class="static"
  :class="{ active: isActive, 'text-danger': hasError }"
></div>

绑定的对象并不一定需要写成内联字面量的形式,也可以直接绑定一个对象:

const classObject = reactive({
  active: true,
  'text-danger': false
})

<div :class="classObject">

我们也可以绑定一个返回对象的计算属性。这是一个常见且很有用的技巧:

const isActive = ref(true)
const error = ref(null)

const classObject = computed(() => ({
  active: isActive.value && !error.value,
  'text-danger': error.value && error.value.type === 'fatal'
}))

我们可以给 :class 绑定一个数组来渲染多个 CSS class:

const activeClass = ref('active')
const errorClass = ref('text-danger')
<div :class="[activeClass, errorClass]">

如果你也想在数组中有条件地渲染某个 class,你可以使用三元表达式:

<div :class="[isActive ? activeClass : '', errorClass]">

errorClass 会一直存在,但 activeClass 只会在 isActive 为真时才存在。

然而,这可能在有多个依赖条件的 class 时会有些冗长。因此也可以在数组中嵌套对象:

<div :class="[{ active: isActive }, errorClass]">


上一主题: reactive() API 和 ref() API
下一主题: 计算属性computed缓存 vs 方法methods
精选帖子
热门帖子
1git 命令 80
2magento 2.4安装需先安装elasticsearch 68
3在phtml中使用图片 55
4magento 2 phtml使用block, phtml 46
5magento 2 获取产品属性 44
6grunt 编译 42
7开启css关键路径提升加载速度 42
8magento slick.js使用 41
9获取可配置产品属性后获取简单产品属性 38