• 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 class

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

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

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

    class可以赋不同名字

    第一种方式内敛的方式

    1. const isActive = ref(true)
    2. const hasError = ref(false)
    3. <div
    4. class="static"
    5. :class="{ active: isActive, 'text-danger': hasError }"
    6. >div>
    7. 渲染的结果 也就是html显示的
    8. <div class="static active">div>

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

    第二种方式绑定的方式

    1. const classObject = reactive({
    2. active: true,
    3. 'text-danger': false
    4. })
    5. class="classObject">
    6. 这也会渲染出相同的结果。我们也可以绑定一个返回对象的计算属性。这是一个常见且很有用的技巧:
    7. const isActive = ref(true)
    8. const error = ref(null)
    9. const classObject = computed(() => ({
    10. active: isActive.value && !error.value,
    11. 'text-danger': error.value && error.value.type === 'fatal'
    12. }))
    13. class="classObject">

    1.2绑定数组

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

    1. const activeClass = ref('active')
    2. const errorClass = ref('text-danger')
    3. class="[activeClass, errorClass]">
    4. 渲染的结果是:
    5. class="active text-danger">

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

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

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

    1.3绑定内联样式

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

    1. const activeColor = ref('red')
    2. const fontSize = ref(30)
    3. "{ color: activeColor, fontSize: fontSize + 'px' }">

    直接绑定

    1. const styleObject = reactive({
    2. color: 'red',
    3. fontSize: '13px'
    4. })
    5. "styleObject">

    绑定数组

    "[baseStyles, overridingStyles]">

    2.列表渲染

    2.1v-for

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

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

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

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

    1. <template>
    2. <ul>
    3. <li v-for="(value, key, index) in myObject">
    4. {{ index }}. {{ key }}: {{ value }}
    5. li>
    6. ul>
    7. template>
    8. 0. title: How to do lists in Vue
    9. 1. author: Jane Doe
    10. 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

  • 相关阅读:
    智慧住建解决方案-最新全套文件
    【多目标优化算法】基于帕累托包络(PESA-II)的选择算法(Matlab代码实现)
    百度文心一言API调用,千帆大模型获取API Key和API Secret图解
    python+requests库使用post方法采坑
    基于JAVA的物流信息管理平台【数据库设计、源码、开题报告】
    C/C++计算表达式值 2020年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
    计算机组成原理——数据的表示和运算②
    python提取网页指定内容
    《吉师作业》(2)之迟来的答案
    SmobilerService 推送实现
  • 原文地址:https://blog.csdn.net/Wdasdasda/article/details/132890239