vue的内置指令
v-cloak
与dispaly:none进行结合使用.
作用:解决初始化慢导致页面闪动.
例:
<style>
*[v-cloak]{
display:none;
}
<style>
<comp-a v-show="isShow" v-cloak></comp-a>
data{
isShow:false
}
v-once
定义它的元素和组件只渲染一次
v-if,v-else-if,v-esle
例:
<div id="app3">
<div v-if="type === 'A'">A</div>
<div v-else-if="type === 'B'">B</div>
<div v-else-if="type === 'C'">C</div>
<div v-else>Not A/B/C</div>
</div>
<script>
var app3 = new Vue({
el:'#app3',
data:{
type:'A'
}
})
</script>
弊端:Vue在渲染元素时,出于效率考虑,会尽可能地复用已有的元素而非重新渲染,因此会出现乌龙,只会渲染变化的云阿苏,也就是说input元素被复用了.
解决方法:加key,唯一,提供key值可以来决定是否复用该元素.
v-show
只改变了css属性display
v-if:实时渲染,显示就渲染,不显示就销毁.
v-show:元素永远存在于页面中,只是改变了css的display的属性.
v-for
遍历数组,每个项渲染到列表之中.
<ul id="example2">
<li v-for="(item,index) in items">
{{parentMessage}} - {{index}} - {{item.message}}
</li>
</ul>
<script>
var example2 = new Vue({
el:'#example2',
data:{
parentMessage:'Parent',
items:[
{message:'Foo'},
{message:'Bar'}
]
}
})
</script>
<ul id="example3">
<li v-for="(value,key,index) in object">
{{index}}. {{key}} : {{value}}
</li>
</ul>
<script>
var example3 = new Vue({
el:'#example3',
data:{
object:{
firstName:'John',
lastName:'Doe',
age:30
}
}
})
</script>
数组更新,过滤排序
改变数组的方法:
push()在末尾添加元素
pop()移除数组最后一个元素
shift()删除数组的第一个元素
unshift()在第一个元素之前添加一个元素
splice()添加或删除函数,返回删除的元素
第一个参数:开始操作的位置.
第二个参数:操作的长度.
第三个可选参数:排序:sort(),reverse()
两个数组变动vue检测不到:
- 改变数组的指定项
- 改变数组长度
过滤:filter
解决方法:
set(改变指定项)
Vue.set(app.arr,1,”car”);splice(改变长度)
app.arr.splice(1)
方法和事件
v-on
methods
修饰符
在vue中传入event对象用$event,方式是冒泡.
stop:阻止单击事件向上冒泡.
prevent:提交事件并且不重载页面.
self:只作用在元素本身而非子元素的时候调用.
once:只执行一次方法.
可以监听键盘事件:
<input @keyup.13="fn">----指定的keyCode
可以用.enter .tab .delete等
版权声明:本博客所有文章除特殊声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处 Roxas Deng的博客!