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 相关文章推荐
从数据结构的角度分析 for each in 比 for in 快的多
Jul 07 Javascript
javascript按位非运算符的使用方法
Nov 14 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
Dec 19 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
Nov 04 Javascript
Angular和百度地图的结合实例代码
Oct 19 Javascript
js与jquery分别实现tab标签页功能的方法
Nov 18 Javascript
JavaScript实现多栏目切换效果
Dec 12 Javascript
javascript学习之json入门
Dec 22 Javascript
Vue和Bootstrap的整合思路详解
Jun 30 Javascript
vue2实现可复用的轮播图carousel组件详解
Nov 27 Javascript
Angular项目如何升级至Angular6步骤全纪录
Sep 03 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
Aug 04 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中文字符串截取多种方法汇总
2016/10/06 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
PHP实现获取url地址中顶级域名的方法示例
2019/06/05 PHP
JQuery从头学起第二讲
2010/07/04 Javascript
jquery键盘事件介绍
2011/01/31 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
JS图片根据鼠标滚动延时加载的实例代码
2013/07/13 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
谈谈JavaScript数组常用方法总结
2017/01/24 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
[09:13]DOTA2-DPC中国联赛 正赛 Ehome vs Magma 选手采访 1月19日
2021/03/11 DOTA
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
vue常用指令代码实例总结
2020/03/16 Python
使用py-spy解决scrapy卡死的问题方法
2020/09/29 Python
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
校庆接待方案
2014/03/18 职场文书
自行车广告词大全
2014/03/21 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
redis数据结构之压缩列表
2022/03/21 Redis
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS