Dojo 应用程序的组件

    Dojo 应用程序通常会注入到单个 DOM 元素中,默认情况下是注入到 document.body 中。这使得 Dojo 应用程序可以与页面中的其他内容共存——静态资源、传统的应用程序、甚至是另外一个 Dojo 应用程序。

    Dojo 中的部件与 DOM 元素类似,是 Dojo 应用程序中封装的核心概念。正如传统网站是通过 DOM 元素逐层构建的一样,Dojo 应用程序则是通过部件逐层构建的。

    部件可以描述一切,从单个界面元素(如 label 或 textbox)到更复杂的容器(如 form 表单、页面或者整个应用程序)。

    详见创建 Dojo 部件参考文档,了解如何在应用程序中创建部件。

    Dojo 部件可以是一个渲染函数工厂或者 TypeScript 类,通常包含在单个 TypeScript 模块中。该模块封装了组成部件的大部分内容,包括它的行为以及 的语义化表示。

    部件通过属性接口向外部消费者提供 API。这个接口既可包含状态字段列表,在渲染时注入到部件中;也可以包含函数,当事件发生时,部件需要通知应用程序的其他部分时调用,比如部件状态的变更。

    部件导入 CSS 模块跟导入其他 TypeScript 模块一样,并允许通过对象属性引用 CSS 类名,这些属性会在开发人员的 IDE 中自动提示。在定义部件的语义元素结构时,可以使用这些属性名指定样式类。部件中的 CSS 类名和最终的样式类名不一致,而这可以在构建阶段识别出来。

    虽然部件的 CSS 模块可以完全封装自身的样式,但通常也需要一些灵活性。部件可以在应用程序的不同配置下使用,每个配置都有自己独特的外观需求。Dojo 提供了覆盖特定样式的能力以满足这个需求。

    为了支持应用程序层面外观的一致性,可以通过进一步控制部件的样式。