Swiper 10 迁移指南

Swiper 元素布局

Swiper 元素现在带有额外的 <div class="swiper"> 主元素内部布局。

在 v9 中

<swiper-container>
  <!-- shadow -->
  <div class="swiper-wrapper">
    <slot />
  </div>
</swiper-container>

在 v10 中

<swiper-container>
  <!-- shadow -->
  <div class="swiper">
    <div class="swiper-wrapper">
      <slot />
    </div>
  </div>
</swiper-container>

因此,如果你依赖并使用一些 shadow DOM 内部技巧,则需要考虑新的布局。

Swiper 元素样式

Swiper Web 组件不再向文档注入全局样式。在这种情况下,如果你将使用自定义导航、分页、滚动条元素,它们将不会被设置样式。

模块导入

为了更好地进行摇树优化,所有模块现在都必须从 /swiper/modules 导入

在 v9 中

import Swiper, { Navigation, Pagination } from 'swiper';

在 v10 中

import Swiper from 'swiper';
import { Navigation, Pagination } from 'swiper/modules';

包结构

v10 中的主要重大更改是简化的包结构

  • 现在,大多数文件(模块除外)都在包根目录中
  • .esm.js 脚本替换为 .mjs
  • .browser.esm.js 脚本现在是相同的 .mjs

如果你直接导入文件,则需要考虑这一点。以下是新的包结构

/modules/
/shared/
/types/
/package.json
/swiper-bundle.css
/swiper-bundle.js
/swiper-bundle.min.css
/swiper-bundle.min.js
/swiper-bundle.min.js.map
/swiper-bundle.min.mjs
/swiper-bundle.min.mjs.map
/swiper-bundle.mjs
/swiper-element-bundle.js
/swiper-element-bundle.min.js
/swiper-element-bundle.min.js.map
/swiper-element-bundle.min.mjs
/swiper-element-bundle.min.mjs.map
/swiper-element-bundle.mjs
/swiper-element.d.ts
/swiper-element.js
/swiper-element.min.js
/swiper-element.min.js.map
/swiper-element.min.mjs
/swiper-element.min.mjs.map
/swiper-element.mjs
/swiper-react.d.ts
/swiper-react.mjs
/swiper-vars.less
/swiper-vars.scss
/swiper-vue.d.ts
/swiper-vue.mjs
/swiper.css
/swiper.d.ts
/swiper.js
/swiper.less
/swiper.min.css
/swiper.min.js
/swiper.min.js.map
/swiper.min.mjs
/swiper.min.mjs.map
/swiper.mjs
/swiper.scss