我对 NuxtJS 相当陌生,所以如果它是一个新手问题,请原谅我。我使用 JavaScript、Tailwind 和 SSR 设置 NuxtJS。所以下面的代码工作正常,但我想从包中导入 Splide。
页面/index.vue
<template>
<div id="image-slider" class="splide">
<div class="splide__track">
<ul class="splide__list">
<li class="splide__slide">
<img src="https://splidejs.com/wp-content/uploads/2019/08/m03.jpg" />
</li>
<li class="splide__slide">
<img src="https://splidejs.com/wp-content/uploads/2019/08/m04.jpg" />
</li>
<li class="splide__slide">
<img src="https://splidejs.com/wp-content/uploads/2019/08/m05.jpg" />
</li>
</ul>
</div>
</div>
</template>
<script>
export default {
mounted() {
document.addEventListener('DOMContentLoaded', function () {
new Splide('#image-slider').mount();
});
},
head() {
return {
link: [
{ rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/npm/@splidejs/splide@latest/dist/css/splide.min.css' }
],
script: [
{ src: 'https://cdn.jsdelivr.net/npm/@splidejs/splide@latest/dist/js/splide.min.js', defer: true, body: true }
]
}
}
}
</script>
我尝试通过这些步骤导入它:pages/index.vue
<script>
export default {
mounted() {
new Splide('#image-slider').mount();
},
}
</script>
插件/splide.js
import Vue from 'vue';
import Splide from '@splidejs/splide';
Vue.use(Splide);
nuxt.config.js
plugins: [
{ src: '~/plugins/splide', mode: 'client', ssr: false }
],
但这在我的浏览器控制台中给了我以下错误:
Uncaught DOMException: Failed to execute 'querySelector' on 'Document': 'function Vue (options) {
if ( true &&
!(this instanceof Vue)
) {
warn('Vue is a constructor and should be called with the `new` keyword');
}
this._init(options);
}' is not a valid selector.
试用 vue 滑块:
插件/splide.js
import Vue from 'vue';
import { Splide, SplideSlide } from '@splidejs/vue-splide';
Vue.use(Splide);
Vue.use(SplideSlide);
给我这个错误:
Could not find a declaration file for module '@splidejs/vue-splide'.
Try `npm i --save-dev @types/splidejs__vue-splide`