1. v-el 获取dom对象
1.0 v-el
<div id="div" v-el:mydiv>dom</div>
methods:{
console.log(this.$els.mydiv.innerText);//dom
console.log(document.getElementById('div').innerHTML);
}
2.0 ref
<div ref="mydom">dom</div>
<组件 ref="mycom"></组件>
methods:{
console.log(this.$refs.mydom.innerHTML);//dom
console.log(this.$refs.mycom);//同时也可以获取组件数据
}
2. v-on 监听dom事件(
2.1 简写[@]
<div @click='myClick'>点击事件</div>
<div @mouseenter='myMouseenter'>鼠标放上事件</div>
<div @mouseleave='myMouseleave'>鼠标离开事件</div>
<input @input='change'>输入即触发</input>
当我们绑定的事件是keyup、keypress、keydown键盘事件时,而且需要判断按下是回车时。这在以前我们需要判断事件对象的keyCode,虽然功能特别简单,但是每次去写还是特别麻烦。vue也想到了这点,只需要在键盘事件后面添加一个.enter修饰符即可。
@keydown.enter='mykeydown'
2.2 修饰符:
.stop阻止事件继续传播 (阻止冒泡)
.prevent事件不再重载页面
.capture使用事件捕获模式,即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理
.self只当在 event.target 是当前元素自身时触发处理函数
.once事件将只会触发一次
.passive告诉浏览器你不想阻止事件的默认行为
v-bind 内容变量替换
简写[:]
<a :href="baidu">百度</a>
<a v-bind="{href:'+baidu'}">di</a>
<a href="http://www.baidu.com"></a>
data:{
baidu:'http://www.baidu.com'
}
v-for
<div v-for="item in list" :key="item.list">
data(){
list:[
{text:1},
{text:2}
]
}
v-html+text 文本替换
<div v-html="text"> //TEXT
<div v-text="text"> //<h1>TEXT</h1>
data(){
text: '<h1>TEXT</h1>'
}
V-if+ else +v-show 显示判断
<a v-if="ok">yes</a>
< av-else>No</a>
<h1 v-show="ok">hello world</h1>
v-if有更高的切换开销
v-show有更高的初始渲染开销。
因此,如果要非常频繁的切换,则使用v-show较好;如果在运行时条件不太可能改变,则v-if较好
v-if的值是false,则这个元素被销毁,不在dom中
v-show的元素会始终被渲染并保存在dom中,它只是简单的切换css的dispaly属性
v-model 双向数据绑定
<input type="text" v-model="user.uname" id="username">
{{user.uname}} //与输入内容一致
data(){
user:{uname: '',},
}
修饰符:
.lazy 以通过这个修饰符,转变为在change事件再同步(改变完成后显示同步)
.trim 去掉首尾空格
网友评论