@ember-compat/tracked-built-ins

中文文档
0.9.1发布于 2022/11/17MITCommonJS近 30 天下载 7.1万

JavaScript内置课的有轨版本! 基于履带式内置软件包,但有经典 Ember 的额外间接支持

中文使用文档
文档目录6 节
  1. 安装
  2. 使用量
  3. 兼容性
  4. 类型脚本
  5. 捐款
  6. 许可证

@ember-compat/ tracked-build-ins (中文(简体) ) GitHub Actions Build Status

这个Ember加通是基于 履带式安装 塞顿. 它已经扩展到包括了对经典Ember的额外互通支持.

说明: 如果你遇到与 @glimmer/validator 依赖者,确认你是否正在使用 embroider 或者说 ember-auto-import

= 2.4.3 在您的主机应用程序中确保它被正确视为外部.


此加通提供了JavaScript内置的履带版本:

import {
  TrackedObject,
  TrackedArray,
  TrackedMap,
  TrackedSet,
  TrackedWeakMap,
  TrackedWeakSet,
} from '@ember-compat/tracked-built-ins';

这些班级的API与其本地同等,但读自: 他们或写给他们,将追踪, 允许你用在你的琥珀 应用程序和更改自动传播!

还包括一个增强版的 @tracked 装饰器,哪个 自动浅析这些类的本地版本 :

import { tracked } from '@ember-compat/tracked-built-ins';

class Foo {
  @tracked value = 123;

  obj = tracked({});
  arr = tracked([]);
  map = tracked(Map);
  set = tracked(Set);
  weakMap = tracked(WeakMap);
  weakSet = tracked(WeakSet);
}

说明: 这个加的 没有 支持 IE 11 或更老的浏览器。 如果你需要支持他们, 考虑使用 跟踪图和集 换句话说.

安装

ember install @ember-compat/tracked-built-ins

使用量

请参看每个班级的 MDN 文档, 以了解更多情况:

所有公共API都是相同的,只有少数例外:

  1. new TrackedArray() 应收到 数组 而不是变量数 参数。 作出这一决定的原因是: new Array() 内 和对称性 new APIs (英语).

    // bad
    new TrackedArray(123);
    new TrackedArray('foo', 'bar', 'baz');
    
    // good
    new TrackedArray([123]);
    new TrackedArray(['foo', 'bar', 'baz']);
    
  2. new TrackedObject() 返回 a 复制 那物体,曾递归它, 不过 new Object() 将返回 原文 对象。 这是为了防止 意外地使原天体变异.

    let original = {};
    let obj = new TrackedObject(original);
    
    obj.foo = 123;
    original.foo; // undefined;
    
  3. 静态 Array 财务报告和审定财务报表 Object 不创建新矩阵/对象的方法 已省略。 一般来说,你应该使用原有的静态方法 这些特性,因为自动跟踪与它们无关. 静态 支持的方法有:

    • Array
      • from
      • of
    • Object
      • fromEntries

    Object.create 尽管它创造了一个实例, 因为手动原型的操作 是一个先进的使用案例 目前不支持.

所有类型也将注册为 instanceof 它们的基础类型,所以它们可以 在多数情况下,作为完全透明的替换.

兼容性

  • Ember.js v3.24 (LTS) 或以上 (中文(简体) )
  • Ember CLI v3.23 或以上( 上)
  • 节点.js v14 或以上

类型脚本

本项目沿用了目前起草的 类型脚本的语义版本 规格.

  • 目前支持的 TypeScript 版本 : v4.4, v4.5, 和 v4.6 (英语)
  • 编译支持政策 : 简单主修
  • 公共 API : 所有未在 a 中发表的类型 -private 模块是公开的

捐款

见 捐款 详细指南.

许可证

本项目根据以下规定获得许可证: MIT 许可证。 。 。 .

版本与发布记录

@ember-compat/tracked-built-ins 共发布 2 个版本,首次发布于 2022/11/09;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.9.1latest2022/11/173 年前
0.9.02022/11/094 年前

关于 @ember-compat/tracked-built-ins 的常见问题

@ember-compat/tracked-built-ins 是什么?

JavaScript内置课的有轨版本! 基于履带式内置软件包,但有经典 Ember 的额外间接支持

如何安装 @ember-compat/tracked-built-ins?

在项目目录运行 npm install @ember-compat/tracked-built-ins,或使用 pnpm add / yarn add / bun add。

@ember-compat/tracked-built-ins 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/ember-compat__tracked-built-ins 是否存在。

@ember-compat/tracked-built-ins 支持 ESM 还是 CommonJS?

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

@ember-compat/tracked-built-ins 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js 14.* || 16.* || >= 18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@ember-compat/tracked-built-ins 可以商用吗?

@ember-compat/tracked-built-ins 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@ember-compat/tracked-built-ins 的下载量有多少?

根据 npm 官方下载统计,@ember-compat/tracked-built-ins 在 2026/10/14 – 2026/11/12 这 30 天内被下载 70,734 次,日均约 2,358 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ember-compat/tracked-built-ins 还在维护吗?

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