Vue 自定义指令功能完整实例


Posted in Javascript onSeptember 17, 2019

本文实例讲述了Vue 自定义指令功能。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>自定义指令</title>
  <script type="text/javascript" src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
</head>
<body>
<h1>自定义指令</h1>
<hr>
<div id="app">
  <div v-json="color">{{num}}</div>
  <p><button @click="add">加一</button></p>
</div>
<p>
  <button οnclick="unbind()">解绑</button>
</p>
</body>
</html>
<script>
  function unbind(){
    //vue 提供的解绑指令
    app.$destroy()
  }
  //自定义指令 有五个钩子函数(声明周期)
  //bind: 只调用一次。指令第一次绑定到元素时调用。用这个钩子函数可以定义一个绑定时执行一次的初始化动作
  //inserted: 被绑定元素插入父节点时调用 (父节点存在即可调用,不必存在于document中)
  // update: 被绑定于元素所在的模板更新时被调用,而无论绑定值是否发生变化 通过比较更新前后的绑定值,可以 忽略不必要的模板更新
  //componentUpdated: 被绑定元素所在模板完成一次更新周期时调用
  // unbind:只调用一次,指令与元素解绑时调用
  Vue.directive('json',{
    bind:function(el,binding){//被绑定
      console.log('1 - bind');
      el.style='color:'+binding.value;
    },
    inserted:function(){//绑定到节点
      console.log('2 - inserted');
    },
    update:function(){//组件更新
      console.log('3 - update');
    },
    componentUpdated:function(){//组件更新完成
      console.log('4 - componentUpdated');
    },
    unbind:function(){//解绑
      console.log('5 - unbind');
    }
  });
  //自定义指令
  // Vue.directive('json',function(el,binding){
  //   el.style='color:'+binding.value;
  // });
  var app = new Vue({
    el:'#app',
    data:{
      num:1,
      color:'red'
    },
    methods:{
      add:function(){
        this.num++
      }
    }
  })
</script>

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

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

Javascript 相关文章推荐
javascript 数组排序函数sort和reverse使用介绍
Nov 21 Javascript
javascript删除数组元素并且数组长度减小的简单实例
Feb 14 Javascript
JavaScript中字符串拼接的基本方法
Jul 07 Javascript
JS更改select内option属性的方法
Oct 14 Javascript
jquery背景跟随鼠标滑动导航
Nov 20 Javascript
AngularJS基础 ng-mouseleave 指令详解
Aug 02 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
Mar 03 Javascript
利用JS实现简单的瀑布流加载图片效果
Apr 22 Javascript
详解React开发必不可少的eslint配置
Feb 05 Javascript
vue图片上传本地预览组件使用详解
Feb 20 Javascript
微信小程序中网络请求缓存的解决方法
Dec 29 Javascript
vue自定义标签和单页面多路由的实现代码
May 03 Javascript
JS扁平化输出数组的2种方法解析
Sep 17 #Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
Sep 17 #Javascript
uni app仿微信顶部导航条功能
Sep 17 #Javascript
layui 关闭open弹出框 刷新table表格页面的方法
Sep 16 #Javascript
解决layer.confirm选择完之后消息框不消失的问题
Sep 16 #Javascript
解决layui轮播图有数据不显示的情况
Sep 16 #Javascript
基于layui轮播图满屏是高度自适应的解决方法
Sep 16 #Javascript
You might like
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
JS 对象介绍
2010/01/20 Javascript
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
jQuery的deferred对象使用详解
2016/09/25 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
简单实现js浮动框
2016/12/13 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
JS栈stack类的实现与使用方法示例
2019/01/31 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
vue项目中锚点定位替代方式
2019/11/13 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
基于django2.2连oracle11g解决版本冲突的问题
2020/07/02 Python
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
致跳远运动员广播稿
2014/02/11 职场文书
白酒市场营销方案
2014/02/25 职场文书
会计电算化毕业生自荐信
2014/03/03 职场文书
团代会主持词
2014/04/02 职场文书
一年级学生评语
2014/04/23 职场文书
捐书倡议书
2014/08/29 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
英文慰问信
2015/02/14 职场文书
Go语言切片前或中间插入项与内置copy()函数详解
2021/04/27 Golang