概述
相关源文件
CHANGELOG.md
README.md
core/package-lock.json
core/package.json
package-lock.json
package.json
packages/angular-server/package-lock.json
packages/angular-server/package.json
packages/angular/package-lock.json
packages/angular/package.json
packages/docs/package-lock.json
packages/docs/package.json
packages/react-router/package-lock.json
packages/react-router/package.json
packages/react/package-lock.json
packages/react/package.json
packages/vue-router/package-lock.json
packages/vue-router/package.json
packages/vue/package-lock.json
packages/vue/package.json
本页面全面介绍了 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 为主流前端框架提供了官方集成
@ionic/angular:提供 Angular 特定的 Ionic Web Components 包装器
@ionic/react:提供 React 特定的组件包装器
@ionic/vue:提供 Vue 特定的组件包装器
每个框架集成包都改编了核心 Web Components,使其能够与各自框架的范式和模式无缝协同工作。
来源:packages/angular/package.json packages/react/package.json packages/vue/package.json
路由包
每个框架集成都有一个相应的路由包来处理导航
@ionic/angular-server:提供 Angular 服务器端渲染 (SSR) 支持
@ionic/react-router:与 React Router 集成
@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 组件分为几个关键类别
UI 元素:基本构建块,如按钮、卡片和列表
布局组件:用于组织内容的组件,如网格、行和列
导航组件:用于应用导航的元素,如标签页、菜单和导航控制器
表单控件:与输入相关的组件,如文本字段、复选框和选择器
覆盖组件:出现在内容之上的组件,如模态框、弹出窗口和警报
导航系统
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 依赖于几个关键依赖项
Stencil:一个 Web Component 编译器,为 Ionic 的组件架构提供支持
Ionicons:整个框架使用的图标库
特定于框架的库:用于集成的 Angular、React 和 Vue 库
来源:core/package.json packages/angular/package.json packages/react/package.json packages/vue/package.json
快速入门
有关 Ionic Framework 特定方面的更详细信息,请参阅以下资源
有关包结构详细信息,请参阅包结构
有关架构信息,请参阅架构
有关版本历史记录,请参阅版本历史记录
有关核心组件的文档,请参阅核心组件
有关框架集成,请参阅框架集成