知识预备:自定义指令中的钩子函数

  • bind:只调用一次,指令第一次绑定到元素的时候调用 (一般在修改style时使用)
  • inserted:被绑定的元素节点插入到dom树中时调用(一般在修改dom时使用)
  • update:所在组件的Vnode更新时调用,但孩子Vnode可能还没有更新
  • componentUpdate:所在组件的Vnode及孩子的Vnode全部更新时调用
  • unbind:只调用一次,指令与元素解绑的时候调用

一般就用前两个就行了

知识预备:自定义指令中的钩子函数中的参数

//例子
bind:function(el,binding)
  • el:指令绑定的对象,可以用来直接操作dom
  • binding是一个对象
binding:{name:指令名value:指令绑定的值 参数值 "1+1"==>2expression:绑定值的字符串形式 "1+1"==>'1+1'
}

还有其他参数类型 不常用就不写了 到这里没看懂没关系 看后面的例子就明白了


1.自定义全局指令

声明:Vue.directive(‘name’,{bind:function(){}})

  • 参数1:字符串 自定义指令的名称
  • 参数2:对象 绑定的钩子函数
<script>
import Vue from 'vue'
Vue.directive('focus', {bind: function (el) {console.log('调用全局自定义指令----bind')},inserted: function (el) {el.focus()console.log('调用全局自定义指令----inserted')}
})
export default {}
</script>

使用:在标签中写 v-指令的名字

      <div>调用全局自定义指令</div><input type="text" v-model="keywords" v-focus>

2.自定义私有指令

声明:

<script>
export default {name: 'directivePage',directives: {'fontWeight': {bind: function (el) {el.style.fontWeight = 500}}},data () {return {keyword: ''}},methods: {}
}
</script>

调用:

 <div v-fontWeight>调用私有自定义指令</div>

3.自定义指令中传递参数

以自定义全局指令为例子
声明:

  • 参数存在于binding对象中 见知识预备中
Vue.directive('color', {bind: function (el, binding) {el.style.color = binding.value}
})

调用:

  • 传递参数以字符串的形式
<div v-color="'blue'">调用全局自定义指令color</div>

效果:


4.自定义指令的简写形式

大多数情况下,我们可能想在bind和update钩子上做重复动作,并且不想关心它的钩子函数时 即不想关心绑定哪个钩子函数

// 不想关心它的钩子函数可以采用简写的方式
Vue.directive('color', (el, binding) => {el.style.color = binding.value
})

Vue中自定义指令directive的使用相关推荐

  1. vue中自定义指令Vue.directive(指令名, 对象)

    1.自定义全局指令 可以在不同的组件实例中使用, 也就是说在全局任意位置都可以使用Vue.directive(指令名, 对象); // 对象中定义了 该指令的所有生命周期函数方法,也叫钩子函数Vue. ...

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

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

  3. 教女朋友学习 vue中的指令及其自定义指令

    写在前面: 我是「扬帆向海」,这个昵称来源于我的名字以及女朋友的名字.我热爱技术.热爱开源.热爱编程.技术是开源的.知识是共享的. 这博客是对自己学习的一点点总结及记录,如果您对 Java.算法 感兴 ...

  4. vue点击改变data值_vue 中自定义指令改变data中的值

    通过局部自定义指令实现了一个拖动的指令 html: script: methods:{ set(x,y){ this.data.x=x; this.data.y=y; } }, directives: ...

  5. vue点击改变data_vue 中自定义指令改变data中的值

    通过局部自定义指令实现了一个拖动的指令 html: script: methods:{ set(x,y){ this.data.x=x; this.data.y=y; } }, directives: ...

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

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

  7. VUE:自定义指令(directives )选项的用法

    自定义指令分为全局指令和局部指令.全局指令可在任意vue组件内生效,局部指令仅在注册了指令的组件内生效. 全局指令和局部指令写法几乎相同.全局指令是在main.js内使用Vue.directive注册 ...

  8. vue从入门到进阶:自定义指令directive,插件的封装以及混合mixins(七)

    一.自定义指令directive 除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令.注意,在 Vue2.0 中,代码复用和抽象的主要形式是组件.然而,有的 ...

  9. 29.VUE自定义指令directive和inserted

    VUE自定义指令directive和inserted 1.什么事自定义指令 1.2使用自定义指令的方式 2.设置自定义组件 2.1 设置全局指令 2.2 设置私有指令 2.3 钩子函数 3. 案例 1 ...

  10. 第三十九篇 自定义指令 - directive

    前面讲了关于在Vue中如何来进行封装swiper组件的内容,本篇内容讲到使自定义组件,讲这块内容也是同样为了后续再次回顾封装swiper组件变化做铺垫内容,那么什么是自定义指令,在前面的内容讲过了好些 ...

最新文章

  1. 每天三分钟玩转Git(已完结)
  2. spring jdbcTemplate使用queryForList示例
  3. Chrome JSON格式化插件
  4. Linux内核设计的艺术
  5. shell脚本如何优雅的打印帮助信息
  6. selenium java api_selenium_java常用API操作
  7. 计算机连接打印机用户数量修改,win7电脑中局域网限制每台打印机的使用成员数量的方法...
  8. [RN] React Native 使用 Redux 比较详细和深刻的教程
  9. 中文词典的扩充和组织
  10. 百度竞价ocpc投放是一门玄学吗
  11. html5 canvas 在线图片转换器
  12. android改变系统语言,Android 9.0设置系统语言
  13. Redis从生米煮成熟饭
  14. mt4双线macd_金叉死叉?高手教你MT4的MACD用法
  15. Chrome 您的连接不是私密连接 NET::ERR_CERT_INVALID
  16. 【中学提纲】必修一——细胞基本结构
  17. 摄像头网线连接到WiFi
  18. 时时刻刻保持敬畏之心
  19. JavaScript系列之递增和递减运算符
  20. 对字符串进行冒泡排序

热门文章

  1. Redis过期键删除策略
  2. 多线程,线程通信,线程池和Lambda表达式
  3. 全球及中国生物制药产业盈利现状及竞争格局展望报告2021-2027年
  4. 小米官网仿写部分代码+实训报告
  5. Paper intensive reading (二十五):Fecal Viral ...Virion-Enriched Metagenomics and Metatranscriptomics
  6. AR技术应用 の 如何做一个Pokemon GO丢出精灵球抓住皮卡丘吧!(2)
  7. [SSL_CHX][2021-08-20]幸运数字们
  8. 华为HCNA之OSPF多区域配置实验
  9. Vue知识点囊括清单
  10. java 动态修改配置文件_Java 项目中一种简单的动态修改配置即时生效的方式 WatchService...