官网实例:

https://cn.vuejs.org/v2/api/#Vue-directive

https://cn.vuejs.org/v2/guide/custom-directive.html

指令定义函数提供了几个钩子函数(可选):

  • bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。

  • inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。

  • update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新(详细的钩子函数参数见下)。

  • componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。

  • unbind: 只调用一次, 指令与元素解绑时调用。

本人菜鸟型,看官网蒙圈,然后百度Vue.directive()的实例和用法,有的很高深,有的不健全,我贴上两个简单的demo,希望对看到的朋友有帮助:

1、官网给出的demo,刷新页面input自动获取焦点:

  1. <div id="app">
  2. <span style="white-space:pre;"> </span><input type="text" v-focus/>
  3. </div>
  1. // 注册一个全局自定义指令 v-focus
  2. Vue.directive('focus', {
  3. // 当绑定元素插入到 DOM 中。
  4. inserted: function (el,binding) {
  5. <span style="white-space:pre;"> </span>// 聚焦元素
  6. <span style="white-space:pre;"> </span>el.focus();
  7. }
  8. });
  9. new Vue({
  10.   el:'#app'
  11. });

2、一个拖拽的demo:

1)被拖拽的元素必须用position定位,才能被拖动;

2)自定义指令完成后需要实例化Vue,挂载元素;

3)inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。

  1. <style type="text/css">
  2. .one,.two{
  3. height:100px;
  4. width:100px;
  5. border:1px solid #000;
  6. position: absolute;
  7. -webkit-user-select: none;
  8. -ms-user-select: none;
  9. -moz-user-select: -moz-none;
  10. cursor: pointer;
  11. }
  12. .two{
  13. left:200px;
  14. }
  15. </style>
  16. <div id="app">
  17. <div class="one" v-drag>拖拽one</div>
  18. <div class="two" v-drag>拖拽two</div>
  19. </div>
    1. Vue.directive('drag', {
    2. inserted:function(el){
    3. el.onmousedown=function(e){
    4. let l=e.clientX-el.offsetLeft;
    5. let t=e.clientY-el.offsetTop;
    6. document.onmousemove=function(e){
    7. el.style.left=e.clientX-l+'px';
    8. el.style.top=e.clientY-t+'px';
    9. };
    10. el.onmouseup=function(){
    11. document.onmousemove=null;
    12. el.onmouseup=null;
    13. }
    14. }
    15. }
    16. })
    17. new Vue({
    18.   el:'#app'
    19. });

Vue.directive()的用法和实例的更多相关文章

  1. Vue.directive添加全局指令详解

    自定义指令创建: Vue.directive( 'mycolor(指令名称:推荐全部小写,驼峰命名会出现问题,看最后面)' , { bind:function(){}, //本例只介绍inserted ...

  2. Vue.directive使用注意

    首先,Vue.directive要在实例初始化之前,不然会报错,还有,定义的指令不支持驼峰式写法,也会报下面同样的错,虽然在源码中没有找到在哪里统一处理大小写,但是在有关directive的方法中捕捉 ...

  3. Vue.directive全局自定义指令案例

    今天正好这个知识点有点淡忘了,就随笔一下吧: Vue.directive(参数1,参数2) 参数1:指令名称,如"drag" 参数2:指令要实现的回调函数,其中回调函数中也有两个参 ...

  4. 【前端】vue.js环境配置以及实例运行简明教程

    vue.js环境配置以及实例运行简明教程 声明:本文档编写参考如下两篇博客,是对它们的修改与补充,欢迎点击链接查看原文: 原文1:vue.js在windows本地下搭建环境和创建项目 原文2:Vue. ...

  5. Vue directive 回调运用

    Vue的官方自定义directive,基本调用简洁如下: Vue.directive('my-directive', { bind: function () {},// 指令与被绑定元素第一次绑定时触 ...

  6. Vue.directive 自定义指令的问题

    1.今天复习一下Vue自定义指令的代码,结果出现一个很无语的结果,先贴代码. 2. <div id="example" v-change-by="myColor&q ...

  7. vue 源码学习二 实例初始化和挂载过程

    vue 入口 从vue的构建过程可以知道,web环境下,入口文件在 src/platforms/web/entry-runtime-with-compiler.js(以Runtime + Compil ...

  8. vue.js+webpack在一个简单实例中的使用过程demo

    这里主要记录vue.js+webpack在一个简单实例中的使用过程 说明:本次搭建基于Win 7平台 Node.js 安装官网提供了支持多种平台的的LTS版本下载,我们根据需要来进行下载安装.对于Wi ...

  9. Vue.directive注册指令

    指令定义函数提供了几个钩子函数(可选): vue指令的生命周期 bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作. inserted: 被绑定 ...

随机推荐

  1. 【题解】间隔排列-C++

    题目Description小Q是班长.在校运动会上,小Q班要进行队列表演.小Q要选出2*N名同学编队,每人都被编上一个号,每一个从1到N的自然数都被某2名同学佩戴,现在要求将他们排成一列,使两个编号为 ...

  2. npm源管理

    1. 安装淘宝镜像 为了提高npm的安装速度,可以使用淘宝镜像. 使用淘宝镜像的方法有两种: 1. npm install -g cnpm --registry=https://registry.np ...

  3. seq2seq聊天模型(三)—— attention 模型

    注意力seq2seq模型 大部分的seq2seq模型,对所有的输入,一视同仁,同等处理. 但实际上,输出是由输入的各个重点部分产生的. 比如: (举例使用,实际比重不是这样) 对于输出"晚上 ...

  4. MySQL备忘点(下)

    联结表 创建联结 FROM 表1,表2 与内连接作用相同类似:如果失去WHERE子句,会出现笛卡尔积现象 内联结 INNER JOIN 高级联结 自联结 例子:SELECT 字段b FROM 表 WH ...

  5. 第二章、URL与资源

    1 URL统一资源定位符 URL 是浏览器寻找信息时所需的资源位置.通过 URL,人类和应用程序才能找到.使用并共享因特网上大量的数据资源.URL是作为URI的一个子集,URI是一类更通用的资源标识符 ...

  6. Flutter移动电商实战 --(30)列表页_商品列表UI界面布局

    小程序里面的布局方式 小程序的图片上这里使用的是warp布局,因为首页里面火爆专区,已经用过了warp来布局了. 所以这里我们没有必要再讲一遍,这里我们使用ListView,我们把它布局成下图这种形式 ...

  7. Methods for Identifying Out-of-Trend Results in Ongoing Stability Data

     python机器学习-乳腺癌细胞挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  8. unittest-每个模块用例一条一条跑,模块都合在一个表格里面统计的方法

    文件目录 文件里面的结构就是常规的 unittest框架的写法 总执行文件 # #coding=utf-8 import unittest, time, os, multiprocessingimpo ...

  9. centos 7 gitlab安装服务器

    详情见 https://blog.csdn.net/duyusean/article/details/80011540

  10. 将springboot安装成windows服务启动。

    下载Windows Service Wrapper 本文下载了winsw-2.3.0-bin.exe. 新建一个目录aiplatformService 在目录里面新建一个aiplatformServi ...