在 Vue 中,双大括号只能用于文本插值。为了给 attribute 绑定一个动态值,需要使用 v-bind指令
语法
html
<div v-bind:id="dynamicId"></div>
这里,在id属性前面加上v-bind指令表明id可随着dynamicId定义动态改变。它们是 Vue 模板语法的一部分。和文本插值类似,指令的值是可以访问组件状态的 JavaScript 表达式。
冒号后面的部分 (:id) 是指令的"参数"。此处,元素的 id attribute 将与组件状态里的 dynamicId 属性保持同步。
简写语法:
html
<div :id="dynamicId"></div>
举个栗子
动态改变组件样式
html
<script setup>
import { ref } from 'vue'
const titleClass = ref('title')
const changeClolor=()=>{
titleClass.value="other"
}
</script>
<template>
<h1 :class="titleClass">Make me red</h1> <!-- 此处添加一个动态 class 绑定 -->
<button @click="changeClolor">
{{"点击我改变颜色"}}
</button>
</template>
<style>
.title {
color: red;
}
.other{
color: green;
}
</style>