文本
“Mustache”语法 (双大括号{{**}**}) 的文本插值
{{}}插入表达式
原始HTML
使用v-html
指令
只对可信任的内容使用HTML插值,绝不要对用户提供的内容使用插值
**
Attribute
HTML的属性中,Mustache语法并不能用,应使用v-bind指令
对于布尔值attribute,如
<button v-on:cliclk=”n+=1’>xxx 缩写
v-model
v-model="xxx"
在input标签里是v-bind:value="xxx"
v-on:input="xxx=$event.target.value"
这两句代码的语法糖
v-if&v-if-else&v-else(条件渲染)
在上也可以使用,最终渲染结果不包含元素 使用 for 对象 可以使用更接近js迭代器语法的 key 如下代码,当text发生改变时,总会被替换而不是被修改,因此会触发过渡 在v-for里使用值范围 迭代数据并不会自动传递到组件里,因为组件有自己的独立作用域,需要使用prop传递数据 不推荐在同一元素上使用 带有
key的作用
用来管理可复用的元素
元素里面不加key,渲染时不会从头开始,
元素里加key,这个元素会从头开始渲染。
v-for(列表渲染)
v-for
基于数组/对象来渲染一个列表
for 数组v-for
指令需要使用 (item [,index]) in items
语法,
items:源数据数组
item:被迭代数组元素
index:可选参数,当前项的索引v-for
指令需要使用 (value [,name [,index]]) in object
语法,
object:源数据对象
value:被迭代对象中的属性值
name:可选参数,对象中的键名
index:可选参数,当前项的索引
注意 key = “index” 有时候会有bugof
来代替in
key
的特殊 attribute 主要用在 Vue 的虚拟 DOM 算法v-for
渲染列表时默认使用“就地更新”策略
就地更新:如果数据项的顺序发生改变,Vue将不会移动DOM元素来匹配数据项顺序,
而是就地更新每个元素,并确保它们在每个索引位置正确渲染
给定key:Vue便会根据key对每个节点进行跟踪,从而重用和重新排序现有元素。key的值必须是唯一的
应用场景:
<transition>
<span :key="text">{{ text }}</span>
</transition>
v-for其他使用
<div>
<span v-for="n in 10">{{ n }} </span>
</div>
它会把模板重复对应的次数(n从1开始)
在上使用v-for
用来渲染一段包含多个元素的内容
在组件上使用v-for
不会自动传值原因:
v-for
和组件的运作紧密耦合,v-for & v-if
v-if
和v-for
处于同一节点时:v-for
优先级高于v-if
这意味着,v-if
将分别重复运行与每个v-for
循环中。
想渲染部分节点时,这将会非常有用。
如果想有条件地跳过循环的执行,可以将v-if
至于外层元素(或上)
v-show(条件展示)
v-show
的元素始终被渲染并保留在DOM中,它仅仅只是切换了CSS property displayv-show
不支持 和v-else
v-show vs v-if
v-if
是惰性的:如果初次渲染时条件为假,则什么都不做,直到第一次变为真时,才会开始渲染v-show
不管初始条件是什么,元素总会被渲染v-if
有着更高的切换开销,v-show
有着更高的初始渲染开销
建议:如果需要频繁切换,v-show
较好。如果运行时条件很少改变,则v-if
较好