光滑的滑块在 vue 组件中不起作用
Slick slider not working in vue components
我正在尝试在 .vue 组件中使用 slick slider,但出现错误。
.slick is not a function
我已经完成了所有设置要求。这是我使用的代码:
new Vue({
el: '#app',
data: {
slider: null
},
methods: {
selectImage: function () {
//http call here
return images
}
},
mounted: function () {
this.slider = $('.gallery').slick({
animation: true
});
}
});
<div class='gallery'>
<div v-for="img in images" @click="selectImage(img)">
<img v-bind:src="img.url">
</div>
</div>
我的 phpstorm 不允许使用 ES6,我怀疑这可能是问题所在。
这是一个 fiddle 我的代码:JSfiddle
您可以看到工作 fiddle here.
我没有收到您遇到的错误。然而它并没有更早地工作,因为代码:$('.gallery').slick({
是在 mount 块中定义的,但是鉴于您以异步方式获取数据,我已将其移动到 updated
块,它将在您之后执行数据已更新。
以下是有效的 vue 代码:
var app = new Vue({
el: "#gallery",
data: function() {
return {
images: [],
slider: null
}
},
mounted() {
var that = this
setTimeout(function() {
that.images.push('http://devcereal.com/wp-content/uploads/2016/05/URL-URI-URN-whats-difference.png')
that.images.push('http://www.shawacademy.com/blog/wp-content/uploads/2015/10/URL-1000x605.jpg')
}, 300)
},
updated () {
$('.gallery').slick({
autoplay: true,
dots: true,
responsive: [{
breakpoint: 500,
settings: {
dots: false,
arrows: false,
infinite: false,
slidesToShow: 2,
slidesToScroll: 2
}
}]
});
}
})
我正在尝试在 .vue 组件中使用 slick slider,但出现错误。
.slick is not a function
我已经完成了所有设置要求。这是我使用的代码:
new Vue({
el: '#app',
data: {
slider: null
},
methods: {
selectImage: function () {
//http call here
return images
}
},
mounted: function () {
this.slider = $('.gallery').slick({
animation: true
});
}
});
<div class='gallery'>
<div v-for="img in images" @click="selectImage(img)">
<img v-bind:src="img.url">
</div>
</div>
我的 phpstorm 不允许使用 ES6,我怀疑这可能是问题所在。
这是一个 fiddle 我的代码:JSfiddle
您可以看到工作 fiddle here.
我没有收到您遇到的错误。然而它并没有更早地工作,因为代码:$('.gallery').slick({
是在 mount 块中定义的,但是鉴于您以异步方式获取数据,我已将其移动到 updated
块,它将在您之后执行数据已更新。
以下是有效的 vue 代码:
var app = new Vue({
el: "#gallery",
data: function() {
return {
images: [],
slider: null
}
},
mounted() {
var that = this
setTimeout(function() {
that.images.push('http://devcereal.com/wp-content/uploads/2016/05/URL-URI-URN-whats-difference.png')
that.images.push('http://www.shawacademy.com/blog/wp-content/uploads/2015/10/URL-1000x605.jpg')
}, 300)
},
updated () {
$('.gallery').slick({
autoplay: true,
dots: true,
responsive: [{
breakpoint: 500,
settings: {
dots: false,
arrows: false,
infinite: false,
slidesToShow: 2,
slidesToScroll: 2
}
}]
});
}
})