比如说:下面的键盘抬起事件调用了submit方法,在键盘事件中可以加上修饰符可以指定某个按键触发事件
<!-- 只有在 `keyCode` 是 13 时调用 `vm.submit()` -->
<input v-on:keyup.13="submit">
Vue官方提供了很多内置按键别名
除此之外,对于没有提供的别名的按键,我们可以使用js里面的键盘事件对应的编码 来添加修饰符,也可以为指定按键自定义别名
// 可以使用 `v-on:keyup.f1`
Vue.config.keyCodes.f1 = 112
//自定义Vue全局指令,定义时不需要添加v-前缀,调用时需要添加
//参数一,指令名,参数二,对象(带有指令的钩子函数)
Vue.directive("focus",{
bind: fucntion(el){ //指令绑定到该元素上时,会立即执行bind,且只执行一次
//el表示被绑定指令的元素,是原生js对象
//el.focus()
},
inserted: function(el){ // 元素插入到dom中时,会执行该函数,只执行一次
el.focus()
},
updated: fucntion(){ //当组件更新时,会执行update函数,可能会触发多次
}
})
注意:除了el属性,其他属性都是只读的
定义私有指令
let vm = new Vue({
el: xxx,
methods:{
},
filters:{
},
//自定义私有指令,属性同全局指令
directives:{
}
});
Vue.directive('color-swatch', function (el, binding) {
el.style.backgroundColor = binding.value
})
从Vue实例被创建,运行,销毁期间中的过程,叫做Vue实例的生命周期
beforeCreate():实例完全被创建出来之前执行,这时data,methods属性中的数据都未被初始化 created(): 这时,data,methods属性中的数据已经被初始化 beforeMount(): 在内存中编译好模版后,尚未将模版渲染到页面中,页面中的dom元素尚未被替换过来,叫做挂载数据之前 mounted(): 挂载模版到页面中(用户可见),已经替换了页面中的值,当执行完mounted表示,实例已经完全创建完成。
beforeUpdate(): 当data中的数据发生改变(被更新)时触发,执行该钩子函数时,页面上的数据是旧,M和V尚未同步。 updated(): 此时根据data中最新的数据,内存中重新生成一份最新的dom树,虚拟dom已经重新渲染并且更新。完成了从M到V的更新
beforeDestroy(): 执行该钩子函数时,Vue实例身上的data,methods,过滤器,自定义指令,还属于可用状态 destroy(): 执行该钩子函数时,Vue实例上的组件已经完全被销毁,data,methods,过滤器,指令属于不可用状态
评论