Vue学习之路之自定义指令
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue自定义指令</title> <style> .red { color: red; } .size { font-size: larger; } [v-cloak] { display: none; } </style> </head> <body> <div id="app"> <!-- 元素自动获取焦点 --> <input type="text" v-focus /> <input type="text" /> <input type="text" v-color='{color:"red"}' /> </div> </body> <script type="text/javascript" src="js/vue.js"></script> <script type="text/javascript"> /* 当内置指令不满足需求时。需要我们创建自定义指令 */ /* 注册一个全局自定义指令 指令下面的钩子函数。为可选项 bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。 inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。 update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新 (详细的钩子函数参数见下)。 */ //自定义获取焦点指令 /* Vue.directive('focus', { // 指令的定义 inserted: function(el) { el.focus(); } }); */ //带参数的自定义指令 //修改元素背景色 Vue.directive('color', { // 指令的定义 inserted: function(el,binding) { el.style.backgroundColor=binding.value.color; } }); var vm = new Vue({ el: "#app", data: { }, methods: { }, directives: { focus: { //局部指令 // 指令的定义 inserted: function (el) { el.focus() } } } }) </script> </html>