• 在庆祝海南建省办经济特区30周年大会上的讲话 2019-10-07
  • 俄罗斯世界杯F组:球迷风采 2019-09-24
  • 彭于晏廖凡曝姜文“精神洁癖” 2019-09-24
  • 苏州大学研究生支教团网上众筹资助留守儿童 2019-09-23
  • 湖北政务微信排行榜第187期出炉 交警类公号表现亮眼 2019-09-19
  • 【奋斗吧2018】风电检修工——荒原上的“听风者” 2019-08-31
  • 母亲节又送康乃馨?送这样的健康佳品才走心 2019-08-30
  • [酷]此文已经把马克思理论、边际理论、人类需求层次理论、生物学理论、心理学理论、社会管理学理论等理论在哲学层面完美融合了! 2019-08-26
  • 兰芝雪纱修颜气垫隔离霜 2019-07-27
  • “鹊桥”中继星顺利进入使命轨道运行 2019-07-27
  • 超越舆情管理的360度信息决策 2019-07-22
  • 视频陶然居变形记:从路边小饭馆到全国餐饮十强 2019-07-21
  • 防震减灾事业发展的重要理论成果 2019-07-20
  • 珠宝配美人!李冰冰大片衣着性感秀身段 2019-07-20
  • 机器人也能拥有“情商”?这个可以有 2019-07-19
  • 香港赛马会有内部料:vue自定义指令用法经典实例小结

     更新时间:2019年03月16日 11:08:42   作者:白杨-M   我要评论
    这篇文章主要介绍了vue自定义指令用法,结合实例形式总结分析了vue自定义指令常见写法与相关操作注意事项,需要的朋友可以参考下

    香港赛马会网站惠泽社绝杀八码 www.mwcrz.tw 本文实例总结了vue自定义指令用法。分享给大家供大家参考,具体如下:

    自定义指令:

    一、属性:

    Vue.directive(指令名称,function(参数){
      this.el  -> 原生DOM元素
    });
    
    
    <div v-red="参数"></div>
    
    

    指令名称:     v-red  ->  red

    * 注意: 必须以 v-开头

    拖拽:

    二、自定义元素指令:(用处不大)

    Vue.elementDirective('zns-red',{
      bind:function(){
        this.el.style.background='red';
      }
    });
    
    

    自定义指令写法一:

    <div id="box">
      <span v-red>
        asdfasd
      </span>
    </div>
    
    
    Vue.directive('red',function(){
      this.el.style.background='red';
    });
    window.onload=function(){
      var vm=new Vue({
        el:'#box',
        data:{
          msg:'welcome'
        }
      });
    };
    
    

    测试示例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>香港赛马会网站惠泽社绝杀八码 www.mwcrz.tw 自定义指令写法一</title>
    <script src="https://cdn.bootcss.com/vue/1.0.4/vue.min.js"></script>
    <script>
    Vue.directive('red',function(){
      this.el.style.background='red';
    });
    window.onload=function(){
      var vm=new Vue({
        el:'#box',
        data:{
          msg:'welcome'
        }
      });
    };
    </script>
    </head>
    <body>
    <div id="box">
      <span v-red>
        asdfasd
      </span>
    </div>
    </body>
    </html>
    
    

    自定义指令写法二:推荐写法

    <div id="box">
      <span v-red="a">
        asdfasd
      </span>
    </div>
    
    
    //这里的color可以传参
    Vue.directive('red',function(color){
      this.el.style.background=color;
    });
    window.onload=function(){
      var vm=new Vue({
        el:'#box',
        data:{
          a:'blue'
        }
      });
    };
    
    

    测试示例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>香港赛马会网站惠泽社绝杀八码 www.mwcrz.tw 自定义指令写法二</title>
    <script src="https://cdn.bootcss.com/vue/1.0.4/vue.min.js"></script>
    <script>
    //这里的color可以传参
    Vue.directive('red',function(color){
      this.el.style.background=color;
    });
    window.onload=function(){
      var vm=new Vue({
        el:'#box',
        data:{
          a:'blue'
        }
      });
    };
    </script>
    </head>
    <body>
    <div id="box">
      <span v-red="a">
        asdfasd
      </span>
    </div>
    </body>
    </html>
    
    

    自定义指令写法三:

    <div id="box">
      <span v-red>
        asdfasd
      </span>
    </div>
    
    Vue.directive('red',{
      bind:function(){
        this.el.style.background='red';
      }
    });
    window.onload=function(){
      var vm=new Vue({
        el:'#box'
      });
    };
    
    

    自定义指令:拖拽drag

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>香港赛马会网站惠泽社绝杀八码 www.mwcrz.tw 自定义指令:拖拽drag</title>
      <script src="https://cdn.bootcss.com/vue/1.0.4/vue.min.js"></script>
      <script>
        Vue.directive('drag',function(){
          var oDiv=this.el;
          oDiv.onmousedown=function(ev){
            var disX=ev.clientX-oDiv.offsetLeft;
            var disY=ev.clientY-oDiv.offsetTop;
            document.onmousemove=function(ev){
              var l=ev.clientX-disX;
              var t=ev.clientY-disY;
              oDiv.style.left=l+'px';
              oDiv.style.top=t+'px';
            };
            document.onmouseup=function(){
              document.onmousemove=null;
              document.onmouseup=null;
            };
          };
        });
        window.onload=function(){
          var vm=new Vue({
            el:'#box',
            data:{
              msg:'welcome'
            }
          });
        };
      </script>
    </head>
    <body>
      <div id="box">
        <div v-drag :style="{width:'100px', height:'100px', background:'blue', position:'absolute', right:0, top:0}"></div>
        <div v-drag :style="{width:'100px', height:'100px', background:'red', position:'absolute', left:0, top:0}"></div>
      </div>
    </body>
    </html>
    
    

    自定义元素指令

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>香港赛马会网站惠泽社绝杀八码 www.mwcrz.tw 自定义元素指令</title>
      <style>
        zns-red{
          width:100px;
          background: gray;
          height:100px;
          display: block;
        }
      </style>
      <script src="https://cdn.bootcss.com/vue/1.0.4/vue.min.js"></script>
      <script>
        Vue.elementDirective('zns-red',{
          bind:function(){
            this.el.style.background='red';
          }
        });
        window.onload=function(){
          var vm=new Vue({
            el:'#box',
            data:{
              a:'blue'
            }
          });
        };
      </script>
    </head>
    <body>
      <div id="box">
        <zns-red></zns-red>
      </div>
    </body>
    </html>
    
    

    感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具//tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

    希望本文所述对大家vue.js程序设计有所帮助。

    相关文章

    • vue中使用[provide/inject]实现页面reload的方法

      vue中使用[provide/inject]实现页面reload的方法

      这篇文章主要介绍了在vue中使用[provide/inject]实现页面reload的方法,文中给大家提到了在vue中实现页面刷新不同的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
      2019-09-09
    • vue 动态绑定背景图片的方法

      vue 动态绑定背景图片的方法

      这篇文章主要介绍了vue 动态绑定背景图片的方法,在文末给大家介绍了vue如何给v-for循环的标签添加背景图片,需要的朋友参考下吧
      2018-08-08
    • Vue CLI 3.x 自动部署项目至服务器的方法

      Vue CLI 3.x 自动部署项目至服务器的方法

      本教程讲解的是 Vue-CLI 3.x 脚手架搭建的vue项目, 利用scp2自动化部署到静态文件服务器 Nginx。非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
      2019-04-04
    • Vue.js自定义事件的表单输入组件方法

      Vue.js自定义事件的表单输入组件方法

      下面小编就为大家分享一篇Vue.js自定义事件的表单输入组件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
      2018-03-03
    • vue2.0结合DataTable插件实现表格动态刷新的方法详解

      vue2.0结合DataTable插件实现表格动态刷新的方法详解

      这篇文章主要介绍了vue2.0结合DataTable插件实现表格动态刷新的方法,结合具体项目实例形式分析了vue2.0结合DataTable插件实现表格动态刷新过程中遇到的问题与相应的解决方法,需要的朋友可以参考下
      2017-03-03
    • vue实现固定位置显示功能

      vue实现固定位置显示功能

      这篇文章主要介绍了vue实现固定位置显示功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
      2019-05-05
    • Vue中消息横向滚动时setInterval清不掉的问题及解决方法

      Vue中消息横向滚动时setInterval清不掉的问题及解决方法

      最近在做项目时,需要进行两个组件联动,一个轮询获取到消息,然后将其传递给另外一个组件进行横向滚动展示,结果滚动的速度越来越快。接下来通过本文给大家分享Vue中消息横向滚动时setInterval清不掉的问题及解决方法,感兴趣的朋友一起看看吧
      2019-08-08
    • vue中的v-if和v-show的区别详解

      vue中的v-if和v-show的区别详解

      这篇文章主要介绍了vue中的v-if和v-show的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
      2019-09-09
    • 深入理解vue.js中的v-if和v-show

      深入理解vue.js中的v-if和v-show

      这篇文章主要给大家深入的介绍了关于vue.js中v-if和v-show的相关资料,文中详细介绍两者的共同点和区别,通过图文介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
      2017-06-06
    • Vue2.2.0+新特性整理及注意事项

      Vue2.2.0+新特性整理及注意事项

      本文是小编精心给大家收藏整理的关于Vue2.2.0+新特性,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
      2018-08-08

    最新评论

  • 在庆祝海南建省办经济特区30周年大会上的讲话 2019-10-07
  • 俄罗斯世界杯F组:球迷风采 2019-09-24
  • 彭于晏廖凡曝姜文“精神洁癖” 2019-09-24
  • 苏州大学研究生支教团网上众筹资助留守儿童 2019-09-23
  • 湖北政务微信排行榜第187期出炉 交警类公号表现亮眼 2019-09-19
  • 【奋斗吧2018】风电检修工——荒原上的“听风者” 2019-08-31
  • 母亲节又送康乃馨?送这样的健康佳品才走心 2019-08-30
  • [酷]此文已经把马克思理论、边际理论、人类需求层次理论、生物学理论、心理学理论、社会管理学理论等理论在哲学层面完美融合了! 2019-08-26
  • 兰芝雪纱修颜气垫隔离霜 2019-07-27
  • “鹊桥”中继星顺利进入使命轨道运行 2019-07-27
  • 超越舆情管理的360度信息决策 2019-07-22
  • 视频陶然居变形记:从路边小饭馆到全国餐饮十强 2019-07-21
  • 防震减灾事业发展的重要理论成果 2019-07-20
  • 珠宝配美人!李冰冰大片衣着性感秀身段 2019-07-20
  • 机器人也能拥有“情商”?这个可以有 2019-07-19
  • 北京pk10技巧规律2码 pk10最牛稳赚2码计划 重庆时时开奖结果记录现场 江苏快3雄鹿计划 481万能四码稳赚 百人炸金花无限金币版 北京pk10走势图 北京时时彩计划软件下载 时时彩后一稳赚计划 时时彩历史开奖号码查询