<input type="text" v-focus>
1.// 全局自定义指令 代码要放在new Vue的上面
// 注册一个全局自定义指令 `v-focus`
// 使用 Vue.directive() 定义全局的指令 v-focus
// 其中参数1 :指令的名称,注意,在定义的时候,指令的名称前面,不需要加 v- 前缀
// 但是:在调用的时候,必须在指令名称前 加上 -v 前缀来进行调用
// 参数2:是一个对象,这个对象身上,有一些指令相关的函数,这些函数可以再特定的阶段,执行相关的操作
Vue.directive('focus', {
// 当被绑定的元素插入到 DOM 中时……
inserted: function (el) {
// 聚焦元素
el.focus()
}
})
<div v-fontweight='900' v-color="'pink'">{{msg}}</div>
Vue.directive('color', {
bind: function (el, binding) {
el.style.color = binding.value
}
})
2、局部自定义指令
directives: {
'fontweight': {
bind: function (el, binding) {
el.style.fontWeight = binding.value
}
},
3、简写方式
'fontsize': function (el, binding) {
el.style.fontSize = parseInt(binding.value) + "px"
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id='app'>
<!-- 参数一定要加引号 -->
<div v-fontweight='900' v-color="'pink'">{{msg}}</div>
<input type="text" v-focus>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
// 全局自定义指令
// 注册一个全局自定义指令 `v-focus`
// 使用 Vue.directive() 定义全局的指令 v-focus
// 其中参数1 :指令的名称,注意,在定义的时候,指令的名称前面,不需要加 v- 前缀
// 但是:在调用的时候,必须在指令名称前 加上 -v 前缀来进行调用
// 参数2:是一个对象,这个对象身上,有一些指令相关的函数,这些函数可以再特定的阶段,执行相关的操作
Vue.directive('focus', {
// 当被绑定的元素插入到 DOM 中时……
inserted: function (el) {
// 聚焦元素
el.focus()
}
})
Vue.directive('color', {
bind: function (el, binding) {
el.style.color = binding.value
}
})
var vm = new Vue({
el: '#app',
data: {
msg: 'dsadsada萨达啊大萨达撒'
},
// 自定义私有指令
directives: {
'fontweight': {
bind: function (el, binding) {
el.style.fontWeight = binding.value
}
}
}
})
</script>
</body>
</html>
<!-- 过滤可被用作一些常见的文本格式化,过滤器可以用在两个地方 mustache插值、v-bind表达式(其他地方一律不能用) -->
<!-- 优先调用私有过滤器 -->