Vue指令是带有v-前缀的特殊属性,用于为DOM元素添加动态行为或绑定数据。
以下是Vue中常见的内置指令及其作用:
1. 数据绑定指令
- v-text:更新元素的文本内容(不解析HTML标签),相当于
{{ }}插值语法的替代。 - v-html:将数据解析为HTML并插入到元素中,需注意XSS攻击风险。
- v-model:实现表单元素与数据的双向绑定,常用于输入框、选择框等。
2. 条件渲染指令
- v-if/v-else/v-else-if:根据条件动态添加或移除DOM节点(条件为假时元素不渲染)。
- v-show:通过切换CSS的
display属性控制元素显示/隐藏(DOM始终存在),适合频繁切换的场景。
3. 循环渲染指令
- v-for:遍历数组或对象生成动态列表,需配合唯一的key属性优化性能。
4. 事件绑定指令
- v-on(缩写
@):监听DOM事件(如点击、键盘输入),支持修饰符(如.stop、.prevent)。
5. 属性绑定指令
- v-bind(缩写
:):动态绑定HTML属性或组件props(如:src、:class)。
6. 特殊功能指令
- v-pre:跳过该元素及其子元素的编译,直接显示原始内容。24
- v-cloak:防止未编译的模板闪烁,需配合CSS使用。
- v-once:元素或组件仅渲染一次,后续数据变化不更新。
- v-slot:用于具名插槽,提供灵活的插槽内容分发。26
- v-memo:(Vue 3特有):缓存计算属性以提高性能。2
指令修饰符
部分指令支持修饰符,例如:
- v-model的
.lazy(延迟更新)、.trim(去除空格)。56 - v-on的
.stop(阻止冒泡)、.prevent(阻止默认事件)。45
总结:Vue指令通过简洁的语法实现了数据绑定、DOM操作和事件处理,是Vue响应式系统的核心功能之一。根据场景选择指令(如频繁切换用:ml-search[v-show],条件稳定用:ml-search[v-if])能优化性能