Vue.js中Directive知识
发布日期:2021-06-29 12:23:45 浏览次数:2 分类:技术文章

本文共 1387 字,大约阅读时间需要 4 分钟。

近期所学的Vue.js这个MVVM前端技术缓解了我一直愁于前后端开发杂糅所带来的痛苦。今天就来说说关于Vue.js里面的Directive知识。

 

Directive

Directive看上去虽然和Angular中的定义类似,Directive都是对DOM功能的一种拓展,但是Vue的Directive要弱的多。

因为,Vue Component本来就包括对DOM的操作,所以大多数时候我们写一个通用组件都是一个Component而不是一

个Directive,但是在Angular中每写一个通用组件,一般都是一个Directive。所以,相对来说,Vue的Directive要纯粹

的多(它就是对DOM功能的一个拓展,而不是为了封装和DOM相关的逻辑)。

 

生命周期

生命周期分为三个阶段:

• bind    :第一次绑定到DOM元素上的时候触发

• update bind:完成之后立即触发,以后每当参数更新的时候都会触发

• unbind    :解除和DOM元素的绑定时触发

 

其中,update是最重要的。update函数接收的参数就是用户通过Attr传入的值。

我们来举一个简单的Directive案例:

它的作用是对Todo List输入的内容进行校验(表单校验)。Directive基本结构为:

 

Vue.directive("minlength", {    bind: function() {    },    update: function() {    },    unbind: function() {   }});

接下来,我们需要在用户输入数据的时候进行校验,代码如下:

Vue.directive("minlength", {  bind: function() {    var self = this;    var el = this.el;    el.addEventListener("keydown", function(e) {      if(e.keyCode === 13) {        if(el.value.length < self.minlength) {          e.preventDefault();        }      }    });    var submit = el.parentNode.querySelector("button, [type='submit']");    submit.disabled = true;    el.addEventListener("keyup", function(e) {      submit.disabled = (el.value.length < self.minlength);    });  },  update: function(value) {    this.minlength = parseInt(value);  },  unbind: function() {    }});

 

从上述代码来看,Directive应该就是为了实现类似的功能存在的,当然还有很多其它的用法就不再细说了。

其次,Directive在Vue中并不是很重要的一块,所以,建议大家平时写代码的时候更多还是写Component。

转载地址:https://buildupchao.blog.csdn.net/article/details/53536889 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java不使用Math.sqrt方法实现的求平方根
下一篇:HashMap和Hashtable的区别

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月28日 04时41分04秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

「重磅猜题之第二篇」2019年大学生电子设计竞赛 2019-04-29
知乎:硬件和软件哪个吃香? 2019-04-29
中国深圳,600架无人机的盛典! 2019-04-29
干货分享 JVM 之第 3 篇 —— Java 内存结构相关 2019-04-29
干货分享 JVM 之第 4 篇 —— 掌握 Jmeter 压力测试工具,熟悉 Jconsole.exe 工具 2019-04-29
干货分享 JVM 之第 5 篇 —— 类加载器 2019-04-29
干货分享 JVM 之第 6 篇 —— SpringBoot2.0 框架性能调优 2019-04-29
基于 Hystrix 高并发服务限流第 1 篇 —— 必须了解的相关概念 2019-04-29
基于 Hystrix 高并发服务限流第 2 篇 —— 服务隔离(线程池隔离、信号量隔离) 2019-04-29
基于 Hystrix 高并发服务限流第 3 篇 —— 服务熔断、服务降级 2019-04-29
基于 Hystrix 高并发服务限流第 4 篇 —— 基于 Feign 实现服务熔断降级处理 2019-04-29
基于 Hystrix 高并发服务限流第 5 篇 —— Hystrix 监控 2019-04-29
Eureka 如何快速的、优雅的停止某个微服务 2019-04-29
Eureka 实现安全认证 2019-04-29
基于 Hystrix 高并发服务限流第 6 篇 —— 服务限流,基于 RateLimiter 实现 2019-04-29
Nginx 反向代理、负载均衡配置、Location正则表达式 2019-04-29
SpringBoot + WebSocket 实现前后端的收发消息 2019-04-29
SpringBoot 整合 JWT 实现统一认证 2019-04-29
SpringBoot 使用 CompletableFuture 实现非阻塞异步编程 2019-04-29
即刻就业:本科毕业如何快速高薪就业? 2019-04-29