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或css文件后面跟参数的原因说明
Jan 09 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
Jul 04 Javascript
控制文字内容的显示与隐藏示例
Jun 11 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
Mar 05 Javascript
js时钟翻牌效果实现代码分享
Jul 31 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
Nov 26 Javascript
第八篇Bootstrap下拉菜单实例代码
Jun 21 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
Apr 27 Javascript
JS事件绑定的常用方式实例总结
Mar 02 Javascript
详解JQuery基础动画操作
Apr 12 jQuery
vue 在单页面应用里使用二级套嵌路由
Dec 19 Vue.js
Vue2.x-使用防抖以及节流的示例
Mar 02 Vue.js
详解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(3)
2006/10/09 PHP
php自动加载autoload机制示例分享
2014/02/20 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
2009/09/19 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
详解python多线程之间的同步(一)
2019/04/03 Python
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
幼师专业毕业生自荐信
2013/09/29 职场文书
材料物理专业大学毕业生求职信
2013/10/15 职场文书
初中女生自我鉴定
2013/12/19 职场文书
销售员岗位职责范本
2014/02/03 职场文书
物流业务员岗位职责
2014/02/08 职场文书
怎么写好自荐书
2014/03/02 职场文书
中班幼儿评语大全
2014/04/30 职场文书
单位授权委托书范文
2014/08/02 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
公开致歉信
2019/06/24 职场文书
一行代码python实现文件共享服务器
2021/04/22 Python
python 标准库原理与用法详解之os.path篇
2021/10/24 Python