vue中除了内置的指令(v-show,v-model)还允许我们自定义指令
想要创建自定义指令,就要注册指令(以输入框获取焦点为例)
一、注册全局指令:
// 注册一个全局自定义指令 `v-focus`Vue.directive('focus', { // 当被绑定的元素插入到 DOM 中时…… inserted: function (el,binding) { // 当前指令绑定的dom元素 //console.log(el); // 指令传入的参数、修饰符、值 v-指令名称:参数.修饰符=值 // console.log(binding) // 聚焦元素 el.focus() }})
二、注册局部指令:
directives: { focus: { // 指令的定义 inserted: function (el) { el.focus() } }}
使用也很简单:直接在元素上面使用v-focus即可:
下面再举一个自定义指令的小例子:拖拽
拖拽1拖拽2
使用也很简单,只用在元素上添加v-drag或者v-drag.limit
- <div id= "div1" v-drag.limit> </div>
- <div id= "div2" v-drag> </div>