将 .js/.css 文件添加到 .svelte 组件

Add .js/.css files to .svelte component

我想给 svelte 添加 swiper 滑块,我的问题是:

  1. 可以在脚本标签中添加css,像这样:
<script> import from "styles.css" ... </script> 

因为导入到 head 很棘手 (Import css in node_modules to svelte)

  1. 我将 swiper.js 文件添加到 svelte,它几乎可以正常工作。它适用于触摸(鼠标),但按钮不起作用(.swiper-button-next .swiper-button-prev)。是否存在特殊的导入 .js 文件规则?

代码示例:https://codesandbox.io/s/musing-leavitt-ygstx?file=/App.svelte:224-243

  1. 使用 rollup,您可以像导入 .js 模块一样导入 css 文件:
<script>
  import { onMount } from "svelte";
  import "swiper/swiper-bundle.min.css"; // <- just import your css
  ...
</script>
  1. 导航问题写在swiper documentation:

By default Swiper exports only core version without additional modules (like Navigation, Pagination, etc.). So you need to import and configure them too:

// core version + navigation, pagination modules:
import Swiper, { Navigation, Pagination } from 'swiper';

// configure Swiper to use modules
Swiper.use([Navigation, Pagination]);

// init Swiper:
const swiper = new Swiper(...);

最后,您的组件初始化可以这样完成:

<script>
  import { onMount } from "svelte";
  import "swiper/swiper-bundle.min.css";
  import Swiper, { Navigation } from "swiper";

  Swiper.use([Navigation]);

  onMount(() => {
    const swiper = new Swiper(".swiper-container", {
      navigation: {
        nextEl: ".swiper-button-next",
        prevEl: ".swiper-button-prev"
      }
    });
  });
</script>

这是 codesandbox 的 link。