Appearance
第5章 指令
指令是带v-前缀的特殊属性,其值限定为单个表达式。指令的作用是,当表达式的值发生改变时,将其产生的连带影响应用到DOM上。
5.1 内置指令
5.1.1 v-show
v-show初始渲染开销高,无论表达式值是什么,都会创建元素,通过css样式属性display控制元素显示与否。
对于表达式为false的,渲染后标签加 style="display: none;"
5.1.2 v-if/v-else-if/v-else
不满足条件时,直接不创建元素,用<!--v-if-->
这样的注释占用位置。
v-if因为要创建、删除元素,所以切换开销高,如果要频繁切换状态,建议v-show。
如果要控制多个元素,可包裹在<template>
里。
5.1.3 v-for
遍历数组
Vue变异方法
Vue非变异方法
过滤与排序(计算属性、方法)
遍历整数
遍历对象
遍历多元素内容用template
key属性解决问题
v-for与v-if一起使用
特别提醒:Vue不建议v-for与v-if一起使用,可以用计算属性代替。
5.1.4 v-bind
v-bind主要用于动态绑定属性,可简写为一个英文冒号:
5.1.5 v-model
v-model指令用来在表单<input><textarea><select>
上创建数据的双向绑定,其本质是监听用户输入更新数据。
5.1.6 v-on
v-on用于监听DOM事件,并触发一些ja vascript代码,v-on可简写为英文符号@
$event原生DOM事件与prevent事件修饰符
事件修饰符
事件修饰符支持串联
按键修饰符
系统修饰符
Vue提供系统修饰键,ctrl、alt、shift、me ta,用于实现相应按键按下时才触发鼠标或者键盘事件。
exact修饰符
用于精确控制系统修饰符组合事件
获取input值三种方式:v-model、@input监听、ref
参考:https://blog.csdn.net/weixin_60463255/article/details/121140873
5.1.7 v-text
用于更新元素的文本内容,可直接用mustache替代
5.1.8 v-html
用于将普通内容作为html插入页面,特别注意只把可信内容插入,不要将用户内容插入,容易导致XSS攻击。
5.1.9 v-once
只渲染一次,之后变为静态内容,无需再次渲染。对于一次性的内容,使用v-once可优化性能。
5.1.10 v-pre
v-pre用于跳过元素及子元素的编译。对于大量没有指令的节点,使用v-pre可加快编译速度。
5.1.11 v-cloak
v-cloak这个指令保留直到关联的组件实例被编译结束,与css规则 [v-cloak]{display: none}
一起使用时,可隐藏未编译的mustache标签。使用路由挂载组件时,v-cloak就不需要了。
5.1.12 v-slot
用于提供命名的插槽或需要接收prop的插槽。