@agentepsilon/decko

中文文档
2.0.1发布于 2018/06/20TypeScriptCommonJS零依赖近 30 天下载 4433

收藏最有用的地产装饰.

中文使用文档
文档目录7 节
  1. 这是叉子 开发的甲板 将错误名称的"发号施令"重命名为"发号施令",并添加了实际"发号施令".
  2. 安装
  3. 使用量
  4. @bind
  5. @memoize
  6. @throttle
  7. @debounce

甲板 NPM Version Build Status

这是叉子 开发的甲板 将错误名称的"发号施令"重命名为"发号施令",并添加了实际"发号施令".

简洁地执行《行动纲领》 3个 4个 最有用的 装饰器数字 :

  • @bind: 使数值为 this 方法内的常数
  • @throttle:节流阀调用方法
  • @debounce: 调用方法
  • @memoize: 基于参数的缓存返回值

装饰者通过用宣示性说明来取代常见图案的噪声来帮助简化代码. 相反地,装饰者也可能被过度地使用并产生出模糊. Decko 建立 3个 页:1 立即可识别的标准装饰器,因此可以避免在自己的代码库中创建装饰器.

💡 提示 : 甲板特别适合 预选类组件。 。 。 .

💫 说明:

安装

备查 无数字 :

npm i -S @agentepsilon/decko

使用量

每一种装饰方法都可以作为命名的导入.

import { bind, memoize, throttle, debounce } from '@agentepsilon/decko';

@bind

class Example {
    @bind
    foo() {
        // the value of `this` is always the object from which foo() was referenced.
        return this;
    }
}

let e = new Example();
assert.equal(e.foo.call(null), e);

@memoize

从装饰函数返回缓存值 . 使用第一个参数作为缓存密钥 . 缓存密钥总是转换为字符串 .

选项 :

caseSensitive: false - 说吧 使缓存密钥对大小写不敏感

cache: {} - 说吧 用于种子或共享条目的预供给缓存存储

class Example {
    @memoize
    expensive(key) {
        let start = Date.now();
        while (Date.now()-start < 500) key++;
        return key;
    }
}

let e = new Example();

// this takes 500ms
let one = e.expensive(1);

// this takes 0ms
let two = e.expensive(1);

// this takes 500ms
let three = e.expensive(2);

@throttle

喉管调用到装饰功能. 节流阀的意思是"最多每N毫秒调用一次". 所有外向函数调用都被整理成单一的内向调用,只有传递到被调用函数的最新(最近)参数.

选项 :

delay: 0 - 说吧 需要缓冲的毫秒数 .

class Example {
    @throttle
    foo() {
        return this;
    }
}

let e = new Example();

// this will only call foo() once:
for (let i=1000; i--) e.foo();

@debounce

取消调用装饰功能 。 发音的意思是"只有在它没有被调用N ms后才能调用". 所有外向函数都发出清除当前已排队的呼叫,然后排出新的呼叫,有效地将呼叫进一步延迟. 一样 @throttle,只有最近的论点被传递.

选项 :

delay: 0 - 说吧 等待重复呼吁的毫秒数 .

class Example {
    @debounce
    foo() {
        return this;
    }
}
``

---

License
-------

MIT

版本与发布记录

@agentepsilon/decko 共发布 2 个版本,首次发布于 2018/06/20;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.0.1latest2018/06/208 年前
2.0.02018/06/208 年前

关于 @agentepsilon/decko 的常见问题

@agentepsilon/decko 是什么?

收藏最有用的地产装饰.

如何安装 @agentepsilon/decko?

在项目目录运行 npm install @agentepsilon/decko,或使用 pnpm add / yarn add / bun add。

@agentepsilon/decko 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@agentepsilon/decko 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@agentepsilon/decko 可以商用吗?

@agentepsilon/decko 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@agentepsilon/decko 的下载量有多少?

根据 npm 官方下载统计,@agentepsilon/decko 在 2026/10/05 – 2026/11/03 这 30 天内被下载 4,433 次,日均约 148 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@agentepsilon/decko 还在维护吗?

最新版本 2.0.1 发布于 2018/06/20(8 年前);至今共发布 2 个版本,其中过去 12 个月发布了 0 个;首次发布于 2018/06/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。