vue类与样式的绑定&&列表渲染

2023-11-11

目录

1.类与样式的绑定

1.1绑定 HTML class

1.2绑定数组

1.3绑定内联样式

绑定数组

2.列表渲染

2.1v-for​

2.2v-for 与对象

2.3在 v-for 里使用范围值​


1.类与样式的绑定

1.1绑定 HTML class

我们可以给 :class (v-bind:class 的缩写) 传递一个对象来动态切换 class:

<div :class="{ active: isActive }"></div>

上面的语法表示 active 是否存在取决于数据属性 isActive 的真假值

class可以赋不同名字

第一种方式内敛的方式

const isActive = ref(true)
const hasError = ref(false)

<div
  class="static"
  :class="{ active: isActive, 'text-danger': hasError }"
></div>
渲染的结果 也就是html显示的
<div class="static active"></div>

当 isActive 或者 hasError 改变时,class 列表会随之更新。举例来说,如果 hasError 变为 true,class 列表也会变成 "static active text-danger"

第二种方式绑定的方式

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

<div :class="classObject"></div>

这也会渲染出相同的结果。我们也可以绑定一个返回对象的计算属性。这是一个常见且很有用的技巧:

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

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

<div :class="classObject"></div>

1.2绑定数组

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

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


渲染的结果是:
<div class="active text-danger"></div>

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

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

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

1.3绑定内联样式

:style 支持绑定 JavaScript 对象值,对应的是 HTML 元素的 style 属性

const activeColor = ref('red')
const fontSize = ref(30)

<div :style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>

直接绑定

const styleObject = reactive({
  color: 'red',
  fontSize: '13px'
})

<div :style="styleObject"></div>

绑定数组

<div :style="[baseStyles, overridingStyles]"></div>

2.列表渲染

2.1v-for

我们可以使用 v-for 指令基于一个数组来渲染一个列表。v-for 指令的值需要使用 item in items 形式的特殊语法,其中 items 是源数据的数组,而 item 是迭代项的别名

const items = ref([{ message: 'Foo' }, { message: 'Bar' }])

<li v-for="item in items">
  {{ item.message }}
</li>

在 v-for 块中可以完整地访问父作用域内的属性和变量。v-for 也支持使用可选的第二个参数表示当前项的位置索引。
const parentMessage = ref('Parent')
const items = ref([{ message: 'Foo' }, { message: 'Bar' }])

<li v-for="(item, index) in items">
  {{ parentMessage }} - {{ index }} - {{ item.message }}
</li>

2.2v-for 与对象

可以通过提供第二个参数表示属性名 (例如 key):

index第三个参数表示位置索引:

<script setup>
import { reactive } from 'vue'

const myObject = reactive({
  title: 'How to do lists in Vue',
  author: 'Jane Doe',
  publishedAt: '2016-04-10'
})
</script>

<template>
	<ul>
    <li v-for="(value, key, index) in myObject">
		  {{ index }}. {{ key }}: {{ value }}
		</li>
  </ul>
</template>

0. title: How to do lists in Vue
1. author: Jane Doe
2. publishedAt: 2016-04-10

2.3在 v-for 里使用范围值

v-for 可以直接接受一个整数值。在这种用例中,会将该模板基于 1...n 的取值范围重复多次。

template

<span v-for="n in 10">{{ n }}</span>

注意此处 n 的初值是从 1 开始而非 0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue类与样式的绑定&&列表渲染 的相关文章

随机推荐

  • oracle数据库还原,如何将dmp文件还原到oralce库

    oracle数据库还原 如何将dmp文件还原到oralce库2008 09 08 20 42 oracle数据库还原 如何将dmp文件还原到oralce库 xuehongliang by 12 八月 2007 16 27 最近用到从orac
  • [自主学习-嵌入式]IIC通信介绍

    文章目录 1 IIC Inter Integrated Circuit 内部集成电路 1 1 概述 1 2 通信过程 1 2 1 主模式 1 2 2 从模式 1 2 3 传输特点 1 2 4 三种信号产生 1 2 5 数据传输 1 3 II
  • 用python来爬取某鱼的商品信息(1/2)

    目录 前言 第一大难题 找到网站入口 曲线救国 模拟搜索 第二大难题 登录 提一嘴 登录cookie获取 第一种 第二种 第四大难题 无法使用导出的cookie 原因 解决办法 最后 出现小问题 总结 下一篇博客 大部分代码实现 前言 本章
  • 王爽著的《汇编语言》第3版笔记

    王爽著的 汇编语言 第3版 于2013年出版 虽然是2013年出版的 但书中部分内容感觉已过时 1 基于intel 8086 CPU介绍 intel 8086是英特尔公司上个世纪生产的芯片 是16位的 早已停产 2 现在PC机上的intel
  • Harbor-registry 使用 NFS 做后端存储实现高可用

    目录 需求分析 方案实施 安装 NFS 配置 harbor registry 配置后端存储为 NFS 配置 harbor registry 副本数为 2 配置 K8S Registry 配置 k8s registry 配置文件 配置 reg
  • 华为OD机试真题 Java 实现【打印文件】【2023Q1 100分】

    一 题目描述 有 5 台打印机打印文件 每台打印机有自己的待打印队列 因为打印的文件内容有轻重缓急之分 所以队列中的文件有1 10不同的优先级 其中数字越大优先级越高 打印机会从自己的待打印队列中选择优先级最高的文件来打印 如果存在两个优先
  • 具有柔性结构的孤岛直流微电网的分级控制(Malab代码实现)

    欢迎来到本博客 目前更新 电力系统相关知识 期刊论文 算法 机器学习和人工智能学习 支持 如果觉得博主的文章还不错或者您用得到的话 可以关注一下博主 如果三连收藏支持就更好啦 这就是给予我最大的支持 本文目录如下 目录 1 概述 2 数学模
  • 设计模式:Service Mesh

    原文链接 http philcalcado com 2017 08 03 pattern service mesh html 自从数十年前 分布式系统的概念诞生以来 工程师们越来越明白 利用分布式系统可以完成许多意想不到的功能 但是 分布式
  • 自动生成存储过程

    感觉非常有用 就记录下来 希望看到的你有帮助 函数 清理默认值 create FUNCTION dbo fnCleanDefaultValue sDefaultValue varchar 4000 RETURNS varchar 4000
  • 在云原生环境中构建可扩展的大数据平台:方法和策略

    文章目录 1 选择适当的云提供商 2 采用容器化和微服务架构 3 分层架构设计 4 弹性计算资源 5 使用分布式计算框架 6 数据分区和分片 7 使用列式存储 8 缓存和数据预取 9 监控和优化 10 数据压缩和压缩 11 考虑数据分片和复
  • mysql到doris踩坑记录(如果有问题希望大家帮忙指出问题)

    1安装mysql 该步骤晚上很多 不做记录 2安装docker 同上 3安装并部署doris 下载镜像步骤省略 sudo docker run p 9030 9030 p 8030 8030 p 8040 8040 itd starrock
  • 设计模式——解释器模式

    解释器模式 解释器模式是什么 解释器模式解决什么问题 解释器模式实现 解释器模式是什么 给定一个语言 定义它的文法的一种表示 并定义一个解释器 这个解释器使用该表示来解释语言中的句子 解释器模式解决什么问题 如匹配字符串的正则表达式 解释器
  • STM32基于WiFi和蓝牙的内外网通信

    目录 通信模块选择 WiFi模块 蓝牙模块 基本框架 1 内网通信 近距离通信 2 外网通信 远程通信 3 关于WiFi配网以及云平台验证问题 4 关于蓝牙名称问题 模块连接图示 重要驱动开发 STM32的ID获取 蓝牙修改名称 WIFI配
  • Springboot租房管理平台 计算机毕设源码54739

    摘 要 2l世纪 随看全球经济的逢勃发展 众多经济字豕纷纷提出了新的管理理念 信息管理 强调了用信息支持决策 随着社会的发展 人们又提出了一个新的名词 管理信息系统 管理信息系统在强调信息的现代社会中变的越来越普及 它是一个利用计算机软硬件
  • oracle数据库学习之第三篇(权限及一些常用命令的演示)

    接上篇我们创建了新的数据库 test 由于中间出了很多的问题 所以这次的演示均在原来的数据库orcl上进行演示 同时也将我oracle数据库的版本切换到了11g 连接好数据库后 select name from v database v d
  • 数据分析毕业设计 金融数据分析与可视化系统 - python

    文章目录 0 前言 1 金融风控 一 题目理解 1 1 题目概况 1 2数据概况 1 3预测指标 三 查看数据 四 分类指标计算示例 4 1混淆矩阵 4 2准确度 4 3precision 精确度 recall 召回率 f1 score 4
  • 堆排序的C语言实现

    include
  • 机器学习-----聚类kmeans肘部图、轮廓图的绘制、以及聚类和聚类中心散点图的绘制

    1 kmeans肘部图和轮廓图 import pandas as pd import numpy as np import matplotlib pyplot as plt from sklearn cluster import KMean
  • Ubuntu持久化开放某端口

    1 查看Ubuntu防火墙状态 sudo ufw status 可以看到状态是未开启 2 打开443端口 sudo ufw allow 443 3 开启Ubuntu防火墙 sudo ufw enable 4 查看Ubuntu防火墙状态以及所
  • vue类与样式的绑定&&列表渲染

    目录 1 类与样式的绑定 1 1绑定 HTML class 1 2绑定数组 1 3绑定内联样式 绑定数组 2 列表渲染 2 1v for 2 2v for 与对象 2 3在 v for 里使用范围值 1 类与样式的绑定 1 1绑定 HTML