绑定事件
@是v-on:的简写,通过v-on:指令绑定事件,指定一个methods选项里面的定义的方法,调用方法时,不传参数,默认会将事件对象作为参数传递,调用方法时,传的是什么参数,接的就是什么参数,传递一个$event参数,该参数就是事件对象
例:<button @click="sayHi">sayHi</button>
<button @click="sayHello('hello')">sayHello</button>
<button @click="sayNice('Nice',$event)">sayNice</button>
当前事件处理的代码比较简单时,可以将代码直接写在行内,注意:只能操作Vue管理的数据
事件修饰符.prevent,用于阻止默认行为
例:<div class="box" @contextmenu.prevent="showbox"></div>
.once,用只绑定一次事件方法
.stop,用于阻止事件冒泡
.self,只能在自身元素上触发,不同在子元素上触发
每次键盘弹起都会调用事件方法,只在回车时,才会调用事件方法
请输入搜索关键字:<input type="text" @keyup="keyup">
请输入搜索关键字:<input type="text" @keyup.enter="keyup1">
深度响应式
vue通过$set方法,给对象添加响应式属性,obj对象里面的每一个属性,都会采用Object.defineProperty去封装,实现响应式,所谓响应式,指的是,数据发生变化后,页面自动更新。给对象后添加的数据不会采用Object.defineProperty去封装,所以,就失去了响应式。
vue通过$delete方法,删除对象的属性,并触发响应式。采用delete关键字删除对象的属性后,也没有触发页面更新。
如果想通过下标操作数组,也必须要使用$set和$delete方法
在vue中,操作数组,并触发页面更新只能使用数组的以下方法:
push,pop,unshift,shift,splice,reseolve,sort