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 相关文章推荐
js下写一个事件队列操作函数
Jul 19 Javascript
ajax java 实现自动完成功能
Dec 19 Javascript
checkbox选中与未选中判断示例
Aug 04 Javascript
jQuery中的read和JavaScript中的onload函数的区别
Aug 27 Javascript
Egret引擎开发指南之运行项目
Sep 03 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
Sep 02 Javascript
jquery基本选择器匹配多个元素的实现方法
Sep 05 Javascript
JS实现的数字格式化功能示例
Feb 10 Javascript
JS实现图片转换成base64的各种应用场景实例分析
Jun 22 Javascript
ES6小技巧之代替lodash
Jun 07 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
Jun 21 Javascript
js 判断当前时间是否处于某个一个时间段内
Sep 19 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
php处理斐波那契数列非递归方法
2012/02/04 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
2014/09/01 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
layui自定义工具栏的方法
2019/09/19 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
python之wxPython菜单使用详解
2014/09/28 Python
Python实现遍历数据库并获取key的值
2015/05/17 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
Python双精度浮点数运算并分行显示操作示例
2017/07/21 Python
Python实现汇率转换操作
2020/05/03 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
实用求职信范文分享
2013/12/25 职场文书
面试后的感谢信范文
2014/02/01 职场文书
微信营销策划方案
2014/02/24 职场文书
2014年科室工作总结
2014/11/20 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
亮剑精神观后感
2015/06/05 职场文书
浅谈Python项目的服务器部署
2021/04/25 Python
Python中json.dumps()函数的使用解析
2021/05/17 Python
Python常遇到的错误和异常
2021/11/02 Python