@cardstack/view-transitions

中文文档
0.2.0发布于 2025/12/18MITTypeScriptCommonJS构建来源已验证近 30 天下载 4687

在 Ember apps 中支持视图过渡 API 的公用事业

中文使用文档
文档目录8 节
  1. 兼容性
  2. 安装
  3. 使用量
  4. 可模拟值
  5. 视图转换Name
  6. 演示应用程序
  7. 捐款
  8. 许可证

@ cardstack/ 视图- 过渡

启动本地视图过渡 API 动画的 Ember 工具 .

兼容性

  • Ember.js v5.8或以上 (中文(简体) )
  • 嵌入或嵌入自动导入 v2

安装

ember install @cardstack/view-transitions

使用量

你需要学习 查看过渡 API 来利用这个图书馆。 这个库提供了一些小的公用设施,使得在Ember应用中可以方便地使用 View Transits.

可模拟值

export function animatable<T>(
  initialValue: T,
  opts?: { equals?: (a: T, b: T) => boolean },
): Animatable<T>

export interface Animatable<T> {
  readonly current: T;
  set(newValue: T): void;
}

创建一个值,在视图转换时触发它. current 拨打时不会立即更新 set,改为 current 允许在“视图过渡”已经为“视图过渡”绘制“前”状态后更新.

import { animatable } from '@cardstack/view-transitions';

const expanded = animatable(false);

function toggleExpanded() {
  expanded.set(!expanded.current);
}

<template>
  <button {{on "click" toggleExpanded}}>Toggle</button>
  {{#if expanded.current}}
    <ExpandedContentHere />
  {{else}}
    <CollapsedContentHere />
  {{/if}}
</template>

可想象值也必然 tracked,用于与Ember其他部分的完全互操作性. 你可以像其他有轨电车状态一样消耗它们,并且会自动进行再接力,附加的奖金是重新接力之前和之后的DOM状态会被浏览器捕获并可以平稳地进行动画.

视图转换Name

设置 view-transition-name CSS财产. 可用于基于模型ID等程序指定独有名称. 接受任意数量的字符串或数字,并缩合它们形成视图-过渡-名称.

viewTransitionName: FunctionBasedModifier<{
  Args: {
      Positional: (string | number)[];
  };
  Element: HTMLElement;
}>;
import { viewTransitionName } from '@cardstack/view-transitions';
<template>
  {{#each @products as |product|}}
    <div {{viewTransitionName "product" product.id}}>
      {{product.title}}
    </div>
  {{/each}}
</template>

关键是理解 view-transition-name CSS属性是,它必须在整个页面上独有. 它既可以在DOM的"旧"和"新"状态中出现,但不能同时出现一次以上. 它控制了哪些元素在视图转换过程中被捕获(思考:"被截取"),以及新旧元素如何关联.

演示应用程序

这个repo包含一个演示应用程序. 运行它:

pnpm install
pnpm start

捐款

见 捐款 详细指南.

许可证

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

版本与发布记录

@cardstack/view-transitions 共发布 2 个版本,首次发布于 2025/12/18;过去 12 个月发布了 2 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.2.0latest2025/12/1810 个月前
0.1.02025/12/1810 个月前

关于 @cardstack/view-transitions 的常见问题

@cardstack/view-transitions 是什么?

在 Ember apps 中支持视图过渡 API 的公用事业

如何安装 @cardstack/view-transitions?

在项目目录运行 npm install @cardstack/view-transitions,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:ember-modifier(>= 4.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cardstack/view-transitions 支持 TypeScript 吗?

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

@cardstack/view-transitions 支持 ESM 还是 CommonJS?

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

@cardstack/view-transitions 可以商用吗?

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

@cardstack/view-transitions 的下载量有多少?

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

@cardstack/view-transitions 还在维护吗?

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