Я начинаю изучать модули ES6 и синтаксис import
/ export
, и я хочу, чтобы мои модули выполнялись только там, где они необходимы.
Я создал два простых модуля, которые подключаются к <div>
с конкретным class
или id
для запуска.
Например:
// product.js
import Vue from 'vue/dist/vue';
export default function() {
var app = new Vue({
el: '#c-product',
data: {
counter: 0,
},
methods: {
addToCart: function() {
this.counter++;
},
removeFromCart: function() {
this.counter--;
}
}
});
}
Тогда у меня есть другой модуль для карусели:
// carousel.js
import Glide from '@glidejs/glide';
export default function() {
new Glide('.glide', {
type: 'carousel',
startAt: 0,
perView: 3,
breakpoints: {
800: {
perView: 2
}
}
}).mount();
};
Затем я связываю все с Gulp + Browserify, чтобы получить файл main.js
, в который я импортирую и выполняю модули:
// main.js
import Product from './product';
import Carousel from './carousel';
Product();
Carousel();
Теперь у меня есть файл main.js
, и я готов к вставкеэто на .html
страницах, но у меня есть ошибки в консоли в зависимости от того, существуют ли эти div на странице или нет.
Пример: если на странице product.html
нет каруселей, в консоли возникают ошибки, связанные с отсутствием <div>
с классом карусели.
Надеюсь, что все будет ясно.
Можете ли вы помочь мне понять?
Вот пример на странице продукта