v- 开头的行内属性,都是指令,不同的指令可以完成或实现不同的功能
除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令
指令使用的几种方式:
//会实例化一个指令,但这个指令没有参数
2`v-xxx`
3
4// -- 将值传到指令中
5`v-xxx="value"`
6
7// -- 将字符串传入到指令中,如`v-html="'<p>内容</p>'"`
8`v-xxx="'string'"`
9
10// -- 传参数(`arg`),如`v-bind:class="className"`
11`v-xxx:arg="value"`
12
13// -- 使用修饰符(`modifier`)
14`v-xxx:arg.modifier="value"`
怎样注册:
全局注册注册主要是用过Vue.directive方法进行注册
Vue.directive第一个参数是指令的名字(不需要写上v-前缀),第二个参数可以是对象数据,也可以是一个指令函数
// 注册一个全局自定义指令 `v-focus`
Vue.directive('focus', {
// 当被绑定的元素插入到 DOM 中时……
inserted: function (el) {
// 聚焦元素
el.focus() // 页面加载完成之后自动让输入框获取到焦点的小功能
}
})
-
局部注册通过在组件options选项中设置directive属性directives: { focus: { // 指令的定义 inserted: function (el) { el.focus() // 页面加载完成之后自动让输入框获取到焦点的小功能 } } }
然后就可以v-focus使用了