从 ion-slides 迁移到 Swiper.js
ion-slides 吗?ion-slides 已在 v6.0.0 中弃用,并在 v7.0.0 中移除。我们建议直接使用 Swiper.js 库。详细的迁移过程如下所述。
如果您需要一个现代化的触摸滑动组件,我们推荐使用 Swiper.js。Swiper 9 引入了 Swiper Element 作为其 Angular 组件的替代品。因此,本指南将介绍如何在您的 Ionic Framework 应用程序中设置 Swiper Element。同时,本文还将涵盖从 ion-slides 迁移到 Swiper Element 可能需要的任何信息。
开始之前
首先,更新到 Ionic 的最新版本:
npm install @ionic/angular@latest
完成后,在您的项目中安装 Swiper 依赖:
npm install swiper@latest
接下来,我们需要添加 CUSTOM_ELEMENTS_SCHEMA,它告诉 Angular 我们将使用自定义元素。这可以在 app.module.ts 中完成,也可以在使用 Swiper 的组件模块文件中完成。
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
@NgModule({
schemas: [..., CUSTOM_ELEMENTS_SCHEMA]
});
...
最后,我们需要调用 Swiper 的 register 函数来全局注册 Swiper 的自定义元素。这只需要进行一次,因此请将它放在 app.component.ts 中。
import { register } from 'swiper/element/bundle';
register();
@Component({
...
})
...
之后,我们只需要将 ion-slides 元素替换为 swiper-container,并将 ion-slide 元素替换为 swiper-slide。请注意,这些自定义元素不需要单独导入,因为调用 register 会自动告诉 Angular 它们的存在。
<swiper-container>
<swiper-slide>幻灯片 1</swiper-slide>
<swiper-slide>幻灯片 2</swiper-slide>
<swiper-slide>幻灯片 3</swiper-slide>
</swiper-container>
完整版与核心版
默认情况下,请确保从 swiper/element/bundle 导入 register 函数。这使用的是 Swiper 的完整版,它会自动包含运行 Swiper 各种功能所需的所有模块和样式表。
如果您想使用核心版(该版本不会自动包含其他模块),请参阅 https://swiperjs.com/element#core-version-and-modules。本迁移指南的其余部分将假定您使用的是完整版。