本文档提供了 Ionic Framework 版本历史的概述,包括主要发布、重大更改、版本模式和生命周期。它作为需要了解 Ionic 版本如何演变以及如何在项目中管理更新的开发人员的参考。
有关框架架构的详细信息,请参阅 架构。有关包结构的信息,请参阅 包结构。
Ionic Framework 遵循语义化版本控制 (SemVer),版本号格式为 MAJOR.MINOR.PATCH
来源:BREAKING.md1-12 core/CHANGELOG.md1-14
Ionic 使用 Lerna 管理的 monorepo 结构来维护所有包的同步版本控制。版本信息从核心传播到所有框架特定的包。
来源:core/CHANGELOG.md1-5 packages/vue/CHANGELOG.md1-5 packages/react/CHANGELOG.md1-5 packages/react-router/CHANGELOG.md1-5 packages/angular-server/CHANGELOG.md1-5 packages/vue-router/CHANGELOG.md1-5
Ionic Framework 经历了几个主要版本,每个版本都带来了重大的架构更改和改进。
8.x 版本于 2024 年 4 月发布,带来了几项重大更改和改进。
Ionic 8 引入了更新的浏览器、JavaScript 框架和移动平台的最低要求。
| 类别 | 平台 | 最低版本 |
|---|---|---|
| 浏览器 | Chrome | 89+ |
| Safari | 15+ | |
| Firefox | 75+ | |
| Edge | 89+ | |
| 框架 | Angular | 16+ |
| React | 17+ | |
| Vue | 3.0.6+ | |
| 移动端 | iOS | 15+ |
| Android | 5.1+(Chromium 89+) |
一项重大更改是移除了对 CSS Animations 的支持,转而使用 Web Animations API。
暗黑模式系统通过使用 CSS 文件的新分发方法得到了增强。
/* Previous approach */
@media (prefers-color-scheme: dark) {
body {
/* global app variables */
}
}
/* New approach in v8 */
@import "@ionic/angular/css/palettes/dark.system.css";
/* Which defines variables like this */
@media (prefers-color-scheme: dark) {
:root {
/* global app variables */
}
}
关键更改是暗色调变量现在应用于 :root 选择器,而不是 body 选择器。
版本 8 移除了表单控件的“旧”方法,其中复选框、单选按钮和切换按钮等控件位于 ion-item 内,并带有 ion-label。现在表单控件使用现代语法,标签是控件组件本身的一部分。
body 元素上,并且默认启用了动态字体缩放。ion-picker 重命名为 ion-picker-legacy 以容纳新的内联选择器。ion-input 的 size 属性以及 ion-item 的多个属性。Ionic 遵循结构化的发布流程,平衡了定期更新和稳定性。
Ionic 为存储库中的所有包维护详细的更改日志。每次更改都分为
每次更改都包括
来源:core/CHANGELOG.md1-20 packages/vue/CHANGELOG.md1-20 packages/react/CHANGELOG.md1-20
从 8.5.0 版本开始,Ionic 引入了一个 logLevel 配置选项,用于控制框架警告和错误的详细程度。这有助于减少控制台的噪音,同时仍能让开发人员了解关键问题。
该配置在核心日志实用程序中实现,并通过 IonicConfig 接口公开。
来源:core/CHANGELOG.md95-98 core/src/utils/logging/index.ts1-45 core/src/utils/logging/test/logging.spec.ts1-114
每个支持的框架(Angular、React、Vue)都有自己的集成包,用于包装核心 Web Components。这些包维护自己的版本控制,这些版本与核心保持同步。
每个框架集成都有自己的生命周期钩子和配置选项,但所有这些都依赖于相同的核心组件。
来源: packages/react/src/components/index.ts1-152 packages/vue/src/index.ts1-129 core/src/index.ts1-34 packages/vue/src/hooks/lifecycle.ts1-56 packages/vue/src/hooks/back-button.ts1-20 packages/vue/src/hooks/router.ts1-62 packages/vue/src/hooks/keyboard.ts1-41 packages/vue/src/utils.ts1-74
在主版本之间迁移时,开发者应遵循以下步骤:
重大更改文档提供了每个组件在版本之间更改的详细迁移说明。
要了解 Ionic Framework 的版本信息,请
来源: core/CHANGELOG.md1-10 packages/react/CHANGELOG.md1-10 packages/vue/CHANGELOG.md1-10
Ionic 偶尔会引入实验性功能,这些功能可能尚未完全支持,但可以预览未来的功能。这些功能通常在文档或代码中带有“experimental”前缀。
例如,在 8.1.0 版本中,添加了一个实验性的过渡焦点管理器,在 8.4.0 版本中,引入了新的 ion-segment-view 组件。
这些实验性功能在被视为稳定版之前,可能会在未来的版本中发生变化或得到改进。