美文网首页
装饰器语法的工具函数 [VUE] + TS 持续更新中

装饰器语法的工具函数 [VUE] + TS 持续更新中

作者: 怪兽难吃素 | 来源:发表于2021-03-31 23:00 被阅读0次

1. 处理点击指定元素之外的工具,推荐在mounted及以后的生命周期中执行

/**
 * [装饰器]处理点击指定元素之外的工具,推荐在mounted及以后的生命周期中执行
 * @param offscaleElRef 指定元素的ref值
 */
export function ClickOutside(offscaleElRef: string): any {
    return (
        target: Object,
        propertyKey: string,
        propertyDecorator: PropertyDescriptor
    ): PropertyDescriptor => {
        const methods = propertyDecorator.value;
        propertyDecorator.value = function(this: any, ...args: any): void {
            const offscaleEl = this.$refs[offscaleElRef];
            if (offscaleEl && offscaleEl.contains) {
                document.addEventListener('click', event => {
                    if (!event || !event.target) return;
                    const clickEl = event.target as HTMLElement;
                    const clickSelf = offscaleEl.contains(clickEl);
                    if (!clickSelf) {
                        methods.call(this, ...args);
                    }
                });
            }
        };
        return propertyDecorator;
    };
}

2. 防抖动函数

/**
 * [装饰器]防止抖动
 * @param delay 延迟
 */
export function Debounce(delay = 300): any {
    return (
        target: Object,
        propertyKey: string,
        propertyDecorator: PropertyDescriptor
    ): PropertyDescriptor => {
        const methods = propertyDecorator.value;
        let timer: number | null = null;
        propertyDecorator.value = function(...args: any): void {
            timer && clearTimeout(timer);
            timer = setTimeout(methods.bind(this, ...args), delay);
        };
        return propertyDecorator;
    };
}

相关文章

  • 装饰器语法的工具函数 [VUE] + TS 持续更新中

    1. 处理点击指定元素之外的工具,推荐在mounted及以后的生命周期中执行 2. 防抖动函数

  • 装饰器实验

    装饰器实验 说明 ts内包含了四个装饰器,类装饰器、属性装饰器、函数装饰器、参数装饰器,本文中测试一下其的使用。 ...

  • TS 装饰器(2): 元数据

    TS 装饰器(2): 元数据 在装饰器函数中 ,我们可以拿到类、方法、访问符、属性、参数的基本信息,如它们的名称,...

  • Python-迭代器

    一、装饰器 开放封闭原则 装饰器的简单实现 装饰器语法糖 装饰有参有返的函数 有参装饰器 wraps修改函数文档注...

  • 函数的高级应用

    装饰器 装饰器是Python中用一个函数装饰另外一个函数或类并为其提供额外功能的语法现象。装饰器本身是一个函数,它...

  • Python高级编程笔记(1)装饰器

    装饰器 装饰器是一个用于封装函数或类的代码工具。显示地将封装器应用到函数或类上,从而它们选择加入到装饰器的功能中。...

  • Vue-cli3中使用TS语法,以及使用例子

    并不是要把vue文件改为ts,而是可以在vue中写ts语法 ts有什么用? 类型检查、直接编译到原生js、引入新的...

  • python 装饰器

    1 @符号是装饰器的语法糖。 2 装饰器设计模式: 通俗点讲,在原函数上添加功能,但不影响原函数(故名装饰) 例如...

  • python学习笔记十一(装饰器)

    装饰器 装饰器(语法糖例子) 对封装单元(如函数),不改变单元本身实现,通过装饰器改变行为其代码复用

  • Python装饰器笔记

    装饰器本原 装饰器就是一个函数,并不需要特殊语法定义。当你在别的函数头上写@时,就相当于调用装饰器函数,传入参数是...

网友评论

      本文标题:装饰器语法的工具函数 [VUE] + TS 持续更新中

      本文链接:https://www.haomeiwen.com/subject/ksgxkltx.html