Ember Glimmer组件 #
一、Glimmer概述 #
Glimmer是Ember的高性能渲染引擎,Glimmer组件是Ember Octane的核心组件模型。
1.1 Glimmer优势 #
| 优势 | 说明 |
|---|---|
| 高性能 | 虚拟DOM优化 |
| 细粒度更新 | 只更新变化部分 |
| 简洁API | 更少的样板代码 |
| TypeScript | 原生支持 |
1.2 与Classic组件对比 #
| 特性 | Classic | Glimmer |
|---|---|---|
| 基类 | EmberObject | 原生类 |
| 属性 | computed() | @tracked |
| 生命周期 | 多个钩子 | constructor/willDestroy |
| 参数 | this.get() | this.args |
二、组件签名 #
2.1 定义签名 #
typescript
interface MyComponentSignature {
Args: {
title: string;
count?: number;
};
Blocks: {
default: [item: Item];
};
Element: HTMLDivElement;
}
export default class MyComponent extends Component<MyComponentSignature> {
}
三、模板组件 #
3.1 仅模板组件 #
handlebars
{{! app/components/icon.hbs}}
<svg class="icon" ...attributes>
<use xlink:href="/icons.svg#{{@name}}"></use>
</svg>
3.2 使用 #
handlebars
<Icon @name="user" class="large" />
四、总结 #
Glimmer组件要点:
| 概念 | 说明 |
|---|---|
| 签名 | 类型定义 |
| Args | 组件参数 |
| Blocks | 产出块 |
| Element | 根元素类型 |
Glimmer组件是Ember现代开发的推荐方式。
最后更新:2026-03-28