vue  directive定义全局和局部指令及指令简写


Posted in Javascript onNovember 20, 2018

directive定义全局和局部指令以及指令简写

1.使用Vue.directive()定义一个全局指令    Vue.directive('指令名称',{对象})
2.参数一:指令的名称,定义时指令前面不需要写v-
3.参数二:是一个对象,该对象中有相关的操作函数
4.在调用的时候必须写v-
5.自定义指令中的常用的3个钩子函数:
    5.1bind:
      1.指令绑定到元素上回立刻执行bind函数,只执行一次
      2.每个函数中第一个参数永远是el,表示绑定指令的元素,el参数是原生js对象
      3.通过el.focus()是无法获取焦点的,因为只有插入DOM后才生效
    5.2inserted:
      1.inserted表示一个元素,插入到DOM中会执行inserted函数,只触发一次
    5.3updated:
      1.当VNode更新的时候会执行updated,可以触发多次
6.定义一个局部指令

    测试案例步骤:

    1.首先需要在html中创建一个盒子

    2.接着需要通过实例化Vue并且通过el将盒子所对应的id进行绑定

    3.在盒子里面所对应的要自定义的标签上通过v-xxx标注

    局部定义的格式:

directives:{
      'xxx':{
       bind:function(el,binding){
        el.style.xxx = binding.value
      }
     }
   }

 7.指令函数的简写

    function等同于将代码写入bind和update里

directive:{  
    'xxx':function(el,binding){
      el.style.xxx = binding.value
    }
  }
<!DOCTYPE html>
<html>
 <head>
   <meta charset="utf-8" />
   <title></title>
   <script src="js/vue-2.4.0.js" type="text/javascript" charset="utf-8"></script>
 </head>
 <body>
   <div id="box">
     <p v-fontsize="'20px'" v-color="'green'">{{msg}}<input type="text" v-focus /></p>
     <p v-color="'red'">{{msg}}<input type="text" v-color="'red'" /></p>
   </div>
 </body>
 <script type="text/javascript">
   //使用Vue.directive()定义一个全局指令
   //1.参数一:指令的名称,定义时指令前面不需要写v-
   //2.参数二:是一个对象,该对象中有相关的操作函数
   //3.在调用的时候必须写v-
   Vue.directive('focus',{
     //1.指令绑定到元素上回立刻执行bind函数,只执行一次
     //2.每个函数中第一个参数永远是el,表示绑定指令的元素,el参数是原生js对象
     //3.通过el.focus()是无法获取焦点的,因为只有插入DOM后才生效
     bind:function(el){
       //el.focus()
     },
     //inserted表示一个元素,插入到DOM中会执行inserted函数,只触发一次
     inserted:function(el){
       el.focus()
     },
     //当VNode更新的时候会执行updated,可以触发多次
     updated:function(el){
       //el.focus()
     }
   })
   //自定义一个设置字体颜色指令
   Vue.directive('color',{
     //只要通过指令绑定给了元素,元素一定会显示在页面上
     //一般情况和样式有关的使用bind函数
     bind:function(el,binding){ //通过binding来传递值
       el.style.color = binding.value
     }
   })
   //实例化Vue
   var vm = new Vue({
     el:'#box',
     data:{
       msg:'测试:'
     },
     //定义一个局部指令
     directives:{ //自定义一个局部指令
       'color':{ //设置字体颜色
         bind:function(el,binding){
           el.style.color = binding.value
         }
       },
       //指令函数的简写:
       //function等同于将代码写入bind和update里
       'fontsize':function(el,binding){ //设置字体大小
         el.style.fontSize = parseInt(binding.value) + 'px' 
       }
     }
   })
 </script>
</html>

总结

以上所述是小编给大家介绍的vue  directive定义全局和局部指令及指令简写,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
你可能不再需要JQUERY
Mar 09 Javascript
jQuery 选择器、DOM操作、事件、动画
Nov 25 Javascript
js监听键盘事件示例代码
Jul 26 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
Mar 11 Javascript
Ionic如何创建APP项目
Jun 03 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
Jul 08 Javascript
React中上传图片到七牛的示例代码
Oct 10 Javascript
iview在vue-cli3如何按需加载的方法
Oct 31 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
Jan 08 Javascript
vue模块拖拽实现示例代码
Mar 09 Javascript
使用p5.js临摹动态图形
Oct 23 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
Nov 04 Javascript
详解Vue.js在页面加载时执行某个方法
Nov 20 #Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
Nov 20 #Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 #jQuery
一步步教你利用Docker设置Node.js
Nov 20 #Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
Nov 20 #Javascript
vue中的适配px2rem示例代码
Nov 19 #Javascript
JS监听事件的叠加和移除功能
Nov 19 #Javascript
You might like
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
ThinkPHP之getField详解
2014/06/20 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
PDO::rollBack讲解
2019/01/29 PHP
laravel 数据验证规则详解
2019/10/23 PHP
javascript instanceof 内部机制探析
2010/10/15 Javascript
一个网马的tips实现分析
2010/11/28 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
2017/07/10 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
2018/07/25 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
python实现统计代码行数的方法
2015/05/22 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
检测浏览器对HTML5和CSS3支持度的方法
2015/06/25 HTML / CSS
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
法学研究生自我鉴定范文
2013/12/04 职场文书
美容院考勤制度
2014/01/30 职场文书
家教广告词
2014/03/19 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
烈士陵园观后感
2015/06/08 职场文书
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL