指令

v-on事件绑定

<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;
        }
    }
});
<input type="text" v-on:keydown="fun($event)">
<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();
      }
    }
  }
});