v-bind 的简写是冒号 :,用于动态绑定 html 属性;支持基础绑定、class/style 增强语法、批量绑定 v-bind="object";需避免双花括号、字符串拼接 class、style 缺单位等错误。

v-bind 的简写就是冒号 :,这是 Vue 3 模板中动态绑定 HTML 属性的标准写法,不是可选技巧,而是开发时默认采用的方式。
基础绑定:用 : 绑定单个属性
把冒号加在属性名前,后面跟变量或表达式即可。Vue 会把它当作 JavaScript 上下文求值,而不是字符串字面量:
-
:src="logoUrl"—— 正确,动态读取 data 或 ref 中的值 -
:src="'logo.png'"—— 错误,这是静态写法,等价于v-bind:src="'logo.png'",没用到响应式数据 -
:disabled="isSubmitting"、:title="userName + ' 的主页'"—— 支持布尔值和简单表达式
class 和 style 的增强写法
虽然也用 :,但 class 和 style 有专门优化的语法,不推荐拼字符串:
-
class 对象语法:
:class="{ active: isActive, error: hasError }",类名按布尔值自动添加或移除 -
class 数组语法:
:class="[baseClass, { hidden: isHidden }]",适合组合静态类与动态类 -
style 对象语法:
:style="{ color: textColor, 'font-size': fontSize + 'px' }",注意带短横线的 CSS 属性要加引号 - 复杂样式建议抽成计算属性或响应式对象,比如
:style="buttonStyle"
批量绑定:用 v-bind="object"(不能写成 :attr="object")
当多个属性需要一起绑定时,可以把它们组织成一个响应式对象,再用 v-bind="attrs" 展开:
- 对象 key 是属性名,value 是对应值;含短横线的属性名(如
'data-id'、'aria-label')必须加引号 -
aria-expanded: false会渲染为aria-expanded="false",符合 ARIA 规范;若想完全不出现该属性,需从对象中剔除键,而非设为 false - 优先级规则:模板中后写的属性会覆盖先写的。例如
v-bind="obj" :id="newId",最终 id 取newId的值
常见错误提醒
这些写法看着像,但实际无效或易出错:
- ❌
:href="{{ url }}"—— 双花括号在属性中不生效,v-bind 已经是响应式上下文,不需要插值 - ❌
:class="isActive ? 'active' : ''"—— 容易漏空格、难维护,应改用对象或数组语法 - ❌
:style="{ fontSize: 14 }"—— 缺单位,浏览器不识别,必须写fontSize + 'px'或用rem/em等带单位的值 - ❌ 把原生属性名(如
style、class、href)直接用作 prop 名 —— 会和内置行为冲突,命名时要避开
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











