拓展迭代器
迭代器模式是一种相对简单的模式,迭代器的使用可以极大地就爱你还数据操作,目前的绝大部分语言都内置了迭代器。
(1)forEach迭代器
forEach方法接收一个函数作为参数,对数组中的每个元素使用这个函数,只调用这个函数,数组本身没有任何变化,即不改变原始数组。
forEach
(2)map迭代器
map迭代器和forEach有些类似
(3)every迭代器
every方法接受一个返回值布尔类型的函数,对数组中每个元素使用这个函数,如果对于所有元素,该函数均返回true,则该方法返回true,否则返回false
基本指令之V-cloak
v-cloak不需要表达式,他会在Vue实例编译结束时从绑定的HTML元素上移除,经常和CSS的display:none;配合使用。
对于屏幕闪动,只要在v-cloak基础上再加上一句css即可:[v-cloak]{display:none; }
V-IF指令回顾
指令只要职责就是当表达式值改动时,相应的将某些行为应用到DOM上,以v-if为例:
v-if指条件渲染,为true时渲染DOM,否则不进行渲染。
条件渲染指令V-else
与JS条件语句if、else-if、else、类似,vue条件指令也可以根据表达式的值在DOM中创建或者销毁/组件
例如v-if与v-else,使用v-else指令来表示v-if的“else”块:
注意:v-else元素必须紧跟在带v-if或者v-else-if的元素的后面,否则将不会被识别。
条件渲染指令v-else-if
v-if、v-else-if、v-else
条件渲染指令-key属性
vue在渲染元素时,出于效率考虑,会尽可能复用已有的元素而非重新渲染,如下所示:
注意:key的值必须是唯一的。
列表渲染指令v-for
当需要遍历数组或者枚举对象环显示时,需要用到列表渲染指令v-for。表达式需要结合in使用,类似item in items的形式,如下:
列表渲染也支持用of来代替in作为分隔符,
v-for表达式还支持可选参数“索引”
分隔符in/of前的语句使用括号,第二个可选参数即为索引。
列表渲染指令v-for 对象遍历:
第二个可选参数:property名称(即对象的键)
第三个可选参数:index索引
整数遍历
此外v-for还可以迭代整数
v-for+v-if
v-for与v-if可以结合使用
v-for的优先级比v-if更高
可以嵌套使用
v-for控制循环次数
1.截取循环的数据(截取循环的数据长度,从而控制循环的次数)
2.通过v-if来控制
v-for与v-if同级问题
由此推出,哪怕只渲染出一小部分用户的元素,也得在每次重渲染的时候遍历整个列表,不论活跃用户是否发生了变化,这样的写法多少会影响性能。所以,可以把上面的改为计算属性:
列表渲染指令v-for之key
key属性类型只能为string或者number类型。