文本
“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 来代替inkey 的特殊 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较好
