Javascript 如何通过从第三方脚本导入正确调用js模块
我有一个很奇怪的问题,我无法解释 我使用的是一个非常棒的页面转换和一个可爱的旋转木马。问题是,它使您的页面成为SPA,因此您必须重新编写Javascript 如何通过从第三方脚本导入正确调用js模块,javascript,barbajs,Javascript,Barbajs,我有一个很奇怪的问题,我无法解释 我使用的是一个非常棒的页面转换和一个可爱的旋转木马。问题是,它使您的页面成为SPA,因此您必须重新编写init脚本。说实话真让人痛苦 在我的barba.js文件中,我调用顶部的swiper旋转木马 import barba from "@barba/core"; import { homeCarousel } from './swiper.js' function initCarousel() { if (document.quer
init
脚本。说实话真让人痛苦
在我的barba.js文件中,我调用顶部的swiper旋转木马
import barba from "@barba/core";
import { homeCarousel } from './swiper.js'
function initCarousel() {
if (document.querySelector('.swiper-container') != null) {
homeCarousel();
}
}
barba.init({
sync: true,
preventRunning: true,
views: [{
namespace: 'main',
afterEnter() {
setTimeout(() => {
initCarousel();
}, 550);
}
}],
transitions: [{
async leave() {
done();
},
async enter() {
newPage();
},
}]
})
然后在我的swiper.js文件中
import Swiper from 'swiper';
import 'swiper/css/swiper.css';
const homeCarousel = () => {
var hs = new Swiper('.home__carousel', {
init: false,
});
hs.init();
}
homeCarousel();
export { homeCarousel }
这一切正常。但我有另一个页面上没有旋转木马,因此。swiper container
将返回null。这也很好,但因为我是在barba.js的顶端导入的
import { homeCarousel } from './swiper.js'
当页面刷新从而导致严重错误时,将调用它
无法读取未定义的属性“push”
当路由改变时,没有可怕的控制台错误
我想在理想情况下,我会将此导入语句放在if(document.querySelector('.swiper container')!=null)的中,但导入必须是顶级的
有什么建议吗?我正要把电脑从窗口拿出来。这可能是一件好事。当您将swiper.js作为库使用时,它应该只包含API而没有副作用。
在这种情况下,请删除homeCarousel()
从swiper.js中
为什么在swiper.js中调用homeCarousel?看起来它是一个库,所以它应该只提供API。@Orphy噢,我的天哪。你太棒了。非常感谢。请回答这个问题,我会接受的。