https://v2.cn.vuejs.org/v2/guide/custom-directive.html
<div v-example:foo.bar="baz">
vue 自定义指令的钩子
bind
: 当 v-XXX 指令绑定到节点上时 触发inserted
:被绑定元素插入父节点时调用update
:所在组件的 VNode 更新时调用
指令钩子函数会被传入以下参数:
el
:指令所绑定的元素,可以用来直接操作 DOMbinding
:一个对象,包含以下 property:name
:指令名,不包括v-
前缀。arg
:传递给指令的参数 (如果有的话)。例如在v-my-directive:foo
中,参数是"foo"
。value
:指令的绑定值,例如:v-my-directive="1 + 1"
中,绑定值为2
。instance
:使用该指令的组件实例。
- …
使用方法:
-
创建一个 js 文件
-
export default {// bind钩子 当 v-XXX 指令绑定到节点上时 触发bind (el) {el.oninput = () => {console.log('1', el)// 正则let pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]");// 将正则匹配到的字符,替换成 '' 赋予输入框节点的值el.children[0].value = el.children[0].value.replace(pattern, '');};} }
-
-
vue 文件中,import 引入文件
-
并在 directives 中定义
-
directives: {limitInput }
-
-
在输入框上使用:
<el-input v-model="name" v-limit-input></el-input>
将一个自定义指令全局注册: 在main.js写
// 使 v-focus 在所有组件中都可用
app.directive('focus', {/* ... */
})
](https://v2.cn.vuejs.org/v2/guide/custom-directive.html)
<div v-example:foo.bar="baz">
vue 自定义指令的钩子
bind
: 当 v-XXX 指令绑定到节点上时 触发inserted
:被绑定元素插入父节点时调用update
:所在组件的 VNode 更新时调用
指令钩子函数会被传入以下参数:
el
:指令所绑定的元素,可以用来直接操作 DOMbinding
:一个对象,包含以下 property:name
:指令名,不包括v-
前缀。arg
:传递给指令的参数 (如果有的话)。例如在v-my-directive:foo
中,参数是"foo"
。value
:指令的绑定值,例如:v-my-directive="1 + 1"
中,绑定值为2
。instance
:使用该指令的组件实例。
- …
使用方法:
-
创建一个 js 文件
-
export default {// bind钩子 当 v-XXX 指令绑定到节点上时 触发bind (el) {el.oninput = () => {console.log('1', el)// 正则let pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]");// 将正则匹配到的字符,替换成 '' 赋予输入框节点的值el.children[0].value = el.children[0].value.replace(pattern, '');};} }
-
-
vue 文件中,import 引入文件
-
并在 directives 中定义
-
directives: {limitInput }
-
-
在输入框上使用:
<el-input v-model="name" v-limit-input></el-input>
将一个自定义指令全局注册: 在main.js写
// 使 v-focus 在所有组件中都可用
app.directive('focus', {/* ... */
})