一、自定义指令

vue 作者允许开发者自己创建一些指令,指令的类型分为全局自定义指令和局部自定义指令

指令的生命周期钩子函数:
1.bind(el,binding){} 指令第一次绑定到元素的时候触发,el表示当前绑定指令的元素,binding表示参数对象(可选项),该生命周期中无法获取到父节点
2. inserted(el,binding){} 表示绑定指令的元素插入到父节点的时候触发,该生命周期可以获取到父节点
3. update(el,binding){} 绑定指令的元素上的数据发生更新的时候触发
4. componentUpdated(el,binding){} 绑定指令的元素节点更新时,触发
5. unbind(el,binding){} 表示当前指令解除绑定的时候触发

二、全局自定义指令

Vue.directive(指令名, {生命周期钩子函数}),全局指令可以在不同的组件实例中使用

这段代码,在vue上定义了全局指令v-color,使用该指令将元素字体颜色调为对应颜色,例如<p v-color='"red"'>{{msg}}</p>将p标签字体调为红色

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><script src="js/vue.js"></script></head><body><div id="app"><p v-color='"red"'>{{msg}}</p></div></body>
</html>
<script>Vue.directive("color", {bind(el, binding) {el.style.color = binding.value;console.log(el.parentNode);},inserted(el, binding) {console.log(el.parentNode);},update() {},componentUpdated() {},unbind() {},});const vm = new Vue({el: "#app",data: {msg: "白日依山尽",},});
</script>

三、局部自定义指令

局部指令 directives: {指令名1: {生命周期钩子函数}, 指令名2: {生命周期钩子函数},…},局部指令只能在当前的组件中使用

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><script src="js/vue.js"></script></head><body><div id="app"><p v-green='"green"'>{{msg}}</p><p v-red>{{msg}}</p></div><hr /><div id="app2"><p v-green='"green"'>{{msg}}</p><p v-red>{{msg}}</p></div></body>
</html>
<script>Vue.directive("red", {bind(el) {el.style.color = "red";},});const vm = new Vue({el: "#app",data: {msg: "欲穷千里目",},methods: {},directives: {green: {bind(el, binding) {el.style.color = binding.value;},inserted(el, binding) {},update() {},componentUpdated() {},unbind() {},},},});const vm2 = new Vue({el: "#app2",data: {msg: "欲穷千里目",},});
</script>

vue中directive相关推荐

  1. Vue中directive的使用

    一.钩子函数 一个指令定义对象可以提供如下几个钩子函数 (均为可选): bind:只调用一次,指令第一次绑定到元素时调用.在这里可以进行一次性的初始化设置. inserted:被绑定元素插入父节点时调 ...

  2. 怎么将vue模板转换为html,vue中自定义html文件的模板

    如果默认生成的 HTML 文件不适合需求,可以创建/使用自定义模板. 一是通过 inject 选项,然后传递给定制的 HTML 文件.html-webpack-plugin 将会自动注入所有需要的 C ...

  3. Vue中实现输入框Input输入格式限制

    Vue中实现输入框Input输入格式限制 1.使用修饰符实现数字输入 在VUE中可以在v-modal后添加修饰符的形式来限制输入,比如: <input v-model.number=" ...

  4. 笔记三 vue中封装复用 过滤器 自定义组件 vue中component选项

    题外话: npm install -g express-generator npm安装express框架 封装复用 Vue中关于封装复用的内容,属于Vue中的进阶知识,在实战中对开发者的抽象和泛化能力 ...

  5. vue中 点击事件的写法_vue中的事件:原生事件与自定义事件__Vue.js

    模板编译 processAttrs 对于ast attributes处理(v-on/@) 利用onRE与dirRE来捕获事件 这里最重要的就是dynamic的判断,vue中可以用动态参数来命名事件名称 ...

  6. vue中自定义指令、组件化、生命周期、节流和防抖、获取DOM、mint-ui简介、过渡和动画

    自定义指令: vue中通过directive方法自定义指令,如:自定义一个v-focus指令: <script>Vue.directive('focus', {//通过directive( ...

  7. Vue 中常见的面试题/知识点整理

    看看面试题,只是为了查漏补缺,看看自己那些方面还不懂.切记不要以为背了面试题,就万事大吉了,最好是理解背后的原理,这样面试的时候才能侃侃而谈.不然,稍微有水平的面试官一看就能看出,是否有真才实学还是刚 ...

  8. vue中防止按钮重复点击提交的方法

    vue中防止按钮重复点击提交的方法 vue中防止按钮重复点击提交的方法 一.自定义全局指令 二.自定义局部指令 三.动态控制disabled属性 vue中防止按钮重复点击提交的方法 经常会遇到的一个问 ...

  9. vue中directives的用法

    Vue中directives的用法 关于 vue 中 directives 的用法问题,详细可以参考vue官方对directives的解释 当前文章主要讲述directives怎么用,directiv ...

最新文章

  1. 你离开学只差这个视频:李宏毅机器学习2020版正式开放上线
  2. iOS中JS 与OC的交互(JavaScriptCore.framework)
  3. access设计视图打不开_定制橱柜衣柜怎么测量才能避免出错?(设计师必看)
  4. 【Java】练习题:蒙眼过马路
  5. 【科研经验】学霸为什么不喜欢给学渣解题?
  6. 談JS面向對象【靜態與非靜態類】
  7. B1.Java基础部分一
  8. “AI+遥感”产品研究现状
  9. 视觉SLAM十四讲学习笔记——ch9后端1
  10. xbee模块和单片机_什么是xbee模块?和zigbee模块有什么区别?
  11. spring原理面试题总结
  12. [随记] 注释//TODO的作用
  13. 什么软件测试充电器快不快,手机充电的快慢到底取决于什么?充电头还是数据线?看完就知道了...
  14. EfficientNetV2网络详解
  15. Pygame实战:家里的小孩数学算数能力很差嘛?别慌—这款“巧算24点小游戏”等你来玩,管用。
  16. java全jit编译_Javac编译与JIT编译
  17. C++11 find和find_if的用法
  18. 鸟哥的linux私房菜运维篇,鸟哥的Linux私房菜学习笔记之SAMBA
  19. 植入式营销--网络广告新玩法
  20. Python 使用循环结构输出菱形(倒等边三角形)图案

热门文章

  1. 2015腾讯笔试大题
  2. SQL SERVER数据库修复之REPAIR_ALLOW_DATA_LOSS级别简介和实例
  3. LISP 图层前后缀_显示图层的Lisp程式
  4. 【算法 独孤九剑】算法模型训练的一般流程
  5. 数据结构——最大堆和最小堆(C语言)
  6. 利用echarts展示旅行足迹
  7. 前端面试题整理汇总100题
  8. java手电筒_java – 用不同的模式在android中打开手电筒
  9. 天玑800能搭载鸿蒙系统吗,天玑800和麒麟980哪个好-天玑800和麒麟980对比评测
  10. sql的DDL,DML