指令
v-on事件绑定
- v-on:click
<button v-on:click="fun('这是使用vue绑定的点击事件')">vue的onclick</button>
new Vue({ el:"#app", data:{ message:"hello world"//model }, methods:{ fun:function(msg){ //alert(msg); this.message = msg; } }});
- v-on:keydown
<input type="text" v-on:keydown="fun($event)">
- v-on:mouseover
<div @mouseover="fun1" id="div"> <textarea @mouseover="fun2($event)">这是一个文件域</textarea></div>
@mouseover == v-on:mouseover
- 事件修饰符
<!-- 阻止单击事件继续传播 --><a v-on:click.stop="doThis"></a><!-- 提交事件不再重载页面 --><form v-on:submit.prevent="onSubmit"></form><!-- 修饰符可以串联 --><a v-on:click.stop.prevent="doThat"></a><!-- 只有修饰符 --><form v-on:submit.prevent></form><!-- 添加事件监听器时使用事件捕获模式 --><!-- 即元素自身触发的事件先在此处理,然后才交由内部元素进行处理 --><div v-on:click.capture="doThis">...</div><!-- 只当在 event.target 是当前元素自身时触发处理函数 --><!-- 即事件不是从内部元素触发的 --><div v-on:click.self="doThat">...</div>
- 按键修饰符
.enter
.tab
.delete
( "删除" 和 "退格" ) .esc
.space
.up
.down
.left
.right
.ctrl
.alt
.shift
.meta
自定义指令
// 定义一个全局指令Vue.directive('focus',{ inserted:function(el){ el.focus(); }})// 携带参数Vue.directive('color',{ inserted:function(el,bingding){ // 这里的value是data里面的,而不是双引号里面的 el.style.backgroundColor = bingding.value; }})
<!-- 使用全局指令 --><input type="text" v-focus><!-- 指令携带参数 --><div style="height:200px" v-color='color'></div>
- 局部指令
var vm = new Vue({ el: '#app', //局部指令,需要定义在 directives 的选项 directives: { focus: { inserted: function(el) { el.focus(); } } }});