什么是全局API?

  全局API并不在构造器里,而是先声明全局变量或者直接在Vue上定义一些新功能,Vue内置了一些全局API。说的简单些就是,在构造器外部用Vue提供给我们的API函数来定义新的功能。

Vue.directive自定义指令

  之前,我们写了一些Vue的内部指令,我们也可以自定义一些指令,比如我们自定义一个v-xiaofan的指令,作用是让文字变成红色。

html:

<div id="app"><div v-xiaofan="color" id="demo">{{num}}</div><div><button @click="add">Add</button></div></div>

js:

var app=new Vue({el:'#app',data:{num:10,color:'#f00'},methods:{add:function(){this.num++;}}})

  然后,我们就可以利用Vue.directive定义一个指令了。

Vue.directive('xiaofan',function(el,binding,vnode){el.style = 'color:' + binding.value;
})

  这时,我们就使得打印出的数字的字体颜色是红色了。

参数解释:

  el: 指令所绑定的元素,可以用来直接操作DOM。

  binding:  一个对象,包含指令的很多信息。

  vnode: Vue编译生成的虚拟节点。

自定义指令的生命周期

自定义指令有五个生命周期(也叫钩子函数),分别是 bind,inserted,update,componentUpdated,unbind

  1. bind:只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个绑定时执行一次的初始化动作。
  2. inserted:被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于document中)。
  3. update:被绑定于元素所在的模板更新时调用,而无论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新。
  4. componentUpdated:被绑定元素所在模板完成一次更新周期时调用。
  5. unbind:只调用一次,指令与元素解绑时调用。
bind:function(){//被绑定console.log('1 - bind');
},
inserted:function(){//绑定到节点console.log('2 - inserted');
},
update:function(){//组件更新console.log('3 - update');
},
componentUpdated:function(){//组件更新完成console.log('4 - componentUpdated');
},
unbind:function(){//解绑console.log('5 - unbind');
}

完整代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Vue.directive 自定义指令 实例</title><script type="text/javascript" src="../assets/js/vue.js"></script>
</head>
<body><h1>Vue.directive 自定义指令</h1><hr><div id="app"><div v-xiaofan="color"> {{num}} </div><p> <button @click="add">ADD</button> </p></div><p> <button οnclick="unbind()">unbind</button> </p><script type="text/javascript">function unbind(){app.$destroy();};Vue.directive('xiaofan',{bind:function(el,binding){console.log('1-bind');el.style = "color:" + binding.value;},inserted:function(){console.log('2-inserted');},update:function(){console.log('3-upadate');},componentUpdated:function(){console.log('4-componentUpdated');},unbind:function(el,binding){console.log('5-unbind');el.style = "color:#0f0";}           });var app = new Vue({el: "#app",data:{num:0,color:'red',},methods:{add:function(){this.num++}}})</script>
</body>
</html>

转载于:https://www.cnblogs.com/xiaofandegeng/p/9002837.html

Vue2.0 的漫长学习ing-2-1相关推荐

  1. Vue2.0 的漫长学习ing-2-6

    Component 初识组件 组件作为vue学习中的重点之一,其强大的功能在vue编程中随处可见,组件就是制作自定义的标签. 全局化注册组件 全局化就是在构造器的外部用Vue.component来注册 ...

  2. Vue2.0 的漫长学习ing-1-5

    v-on:绑定事件监听器 v-on 就是监听事件,可以用v-on指令监听DOM事件来触发一些javascript代码,也就是我们在js中常用的事件处理函数,同时在Vue中我们可以使用@来简写v-on. ...

  3. vue2.0官网学习记录

    目录 1. vue.js是什么 2. 插值 2.1 文本插值{{}}, v-once指令 2.2 原始HTML插值, v-html, XSS攻击 XSS攻击 2.3 属性Attribute, v-bi ...

  4. 【Vue2.0学习】—Vuex工作原理图(二十五)

    [Vue2.0学习]-Vuex工作原理图(二十五) 一. Vuex 是什么? 概念: 专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对Vue应用中多个组件的共享状态进行集中式的管理(读/写 ...

  5. 【Vue2.0学习】—数据绑定

    [Vue2.0学习]-数据绑定 <!DOCTYPE html> <html lang="en"><head><meta charset=& ...

  6. vue2.0学习——使用webstorm创建一个vue项目

    背景:小白自学vue,翻阅了好多大神的博客,看了网上很多的视频,过程很吃力,好在功夫不负有心人,磕磕绊绊的也算入门了,现为自己vue的学习阶段做个小小的总结.vue2.0的基础知识的总结暂时不总结成文 ...

  7. 【Vue学习笔记】尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通

    尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通 1.Vue核心部分 1.1 Vue简介 1.1.1 Vue是什么? Vue是一套用于构建用户界面的渐进式JavaScript框架. ...

  8. [Vue]学习笔记目录 【Vue2与Vue3完结】 (尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通)

    文章目录 前言 遇见的问题及其解决方案 之前笔记 Vue2 Vue3 前言 本笔记根据如下笔记和视频进行整理 老师的课件笔记,不含视频 https://www.aliyundrive.com/s/B8 ...

  9. 【Vue2.0学习】—插槽(六十四)

    [Vue2.0学习]-插槽(六十四) 作用:让父组件可以向子组件指定的位置插入html结构,也是一种组件间通信的方式,适用于 父组件=>子组件 分类:默认插槽.具名插槽.作用域插槽 默认插槽 使 ...

  10. vue学习(八)vue2.0路由vue-router的简单入门使用

    vue-router官网中文文档:Vue Router Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.路由实际上就是可以理 ...

最新文章

  1. 在组策略中用户策略仅对特定计算机生效,如何对本地组策略设置使之不对特定用户生效?...
  2. 关于时间差查询的一个小技巧
  3. shell脚本安装mysql并安装一个小服务
  4. 转载:掩膜矩阵操作数学解释(权重表,锐化)
  5. Go 语言:我那么值钱,我骄傲了吗?
  6. linux的mutex状态查询命令,如何断言std :: mutex是否已锁定?
  7. NoHttp使用简析——Android网络请求框架(二)
  8. 【数据结构】4.1图的创建及DFS深度遍历(不完善)
  9. 服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)
  10. GDAL源码剖析(七)之GDAL RasterIO使用说明
  11. Windows上的Spark环境搭建后,运行时报错的问题
  12. C语言齿轮参数计算程序,C语言程序实现齿轮基本参数几何尺寸计算.pdf
  13. Windows 11 Manager(win11优化大师)官方中文版V1.0.0 | windows11优化软件下载
  14. libigl cot laplacian 计算方式
  15. PPT | 5G时代的视频云服务关键技术与实践
  16. 淘宝订单同步及解决方法
  17. shipyard docker集群问题
  18. 微信开发——加密认证
  19. 理解浏览器的多线程,JavaScript的单线程
  20. 从磁盘原理理解文件读写优化

热门文章

  1. 拓端tecdat|python用遗传算法 神经网络 模糊逻辑控制算法对彩票乐透数据进行预测
  2. 深度学习之神经网络(二)
  3. 《SpringBoot实战》笔记2
  4. DeepFake技术--实际操作
  5. 2020.06.25 端午节快乐
  6. python解析页面DOM树形成xpath列表,并计算DOM树的最大深度
  7. python time、datetime模块学习使用
  8. 数据结构以及算法的资源整理备忘
  9. Linux命令 查看端口占用情况
  10. python---set集合