菜单

概述

相关源文件

本页面全面介绍了 Ionic Framework 仓库,解释了其目的、架构和组件组织。Ionic Framework 是一个开源 UI 工具包,用于使用 Web 技术(HTML、CSS、JavaScript)通过单一代码库构建高质量、跨平台原生和 Web 应用程序。

什么是 Ionic Framework?

Ionic Framework 基于标准的 Web 技术构建,并提供丰富的 UI 组件库,这些库经过优化,可用于构建跨平台的移动和桌面应用程序。其核心功能是独立于框架(实现为 Web Components),并提供 Angular、React 和 Vue 的官方集成。

来源:core/package.json README.md

存储库结构

Ionic Framework 使用 Lerna 管理的 monorepo 架构。这种方法允许集中管理多个包,同时保持清晰的依赖关系边界。

来源:package.json core/package.json

核心包

@ionic/core 包是 Ionic Framework 的基础。它包含了所有 UI 组件的实现,这些组件是使用 Stencil 构建的、独立于框架的 Web Components。

@ionic/core 的主要特性

  • 作为 Web Components 实现的 UI 组件
  • 平台检测工具
  • 动画系统
  • 手势识别
  • 主题化功能

来源:core/package.json

框架集成包

Ionic Framework 为主流前端框架提供了官方集成

  1. @ionic/angular:提供 Angular 特定的 Ionic Web Components 包装器
  2. @ionic/react:提供 React 特定的组件包装器
  3. @ionic/vue:提供 Vue 特定的组件包装器

每个框架集成包都改编了核心 Web Components,使其能够与各自框架的范式和模式无缝协同工作。

来源:packages/angular/package.json packages/react/package.json packages/vue/package.json

路由包

每个框架集成都有一个相应的路由包来处理导航

  1. @ionic/angular-server:提供 Angular 服务器端渲染 (SSR) 支持
  2. @ionic/react-router:与 React Router 集成
  3. @ionic/vue-router:与 Vue Router 集成

来源:packages/angular-server/package.json packages/react-router/package.json packages/vue-router/package.json

组件架构

Ionic 的组件架构围绕 Web Components 构建,这些 Web Components 使用 Stencil 实现。这使得组件可以与任何框架或不带框架一起使用。

来源:core/package.json

组件类别

Ionic 组件分为几个关键类别

  1. UI 元素:基本构建块,如按钮、卡片和列表
  2. 布局组件:用于组织内容的组件,如网格、行和列
  3. 导航组件:用于应用导航的元素,如标签页、菜单和导航控制器
  4. 表单控件:与输入相关的组件,如文本字段、复选框和选择器
  5. 覆盖组件:出现在内容之上的组件,如模态框、弹出窗口和警报

Ionic 提供了一个复杂的导航系统,该系统模仿了原生移动导航模式,同时在浏览器环境中运行。

来源:packages/angular-server/package.json packages/react-router/package.json packages/vue-router/package.json

覆盖层系统

覆盖系统管理出现在其他内容之上的组件,例如模态框、警报和弹出窗口。

版本控制与发布

Ionic Framework 遵循语义化版本控制 (MAJOR.MINOR.PATCH)。该项目维护一个详细的更改日志,跟踪所有更改,包括新功能、错误修复和重大更改。

截至本文档,当前版本为 8.5.5。

来源:CHANGELOG.md core/package.json

关键依赖项

Ionic 依赖于几个关键依赖项

  1. Stencil:一个 Web Component 编译器,为 Ionic 的组件架构提供支持
  2. Ionicons:整个框架使用的图标库
  3. 特定于框架的库:用于集成的 Angular、React 和 Vue 库

来源:core/package.json packages/angular/package.json packages/react/package.json packages/vue/package.json

快速入门

有关 Ionic Framework 特定方面的更详细信息,请参阅以下资源