masonry.js
除了vue,我知道如何使用。但是,我在使它起作用并在vue框架中正确调用时遇到问题。我在创建或准备就绪的内部调用它,但似乎都无法正确地形成网格。我如何才能在框架内使用它?哦,在此脚本之前,我确实在html中调用了jquery。这是组件内部的内容:
编辑:
我可以看到砖石通过用JS分配其高度并将项目更改为绝对位置来影响网格。但是,它放置不正确。它将它们堆叠在彼此之上,而不是像应该在网格中那样并排堆叠。
<template>
<div class="projects--container">
<div class="inner-section inner--options">
<div class="grid">
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
</div>
</div>
</div>
</template>
<script>
export default{
ready: function () {
this.mason();
},
data: function () {
return {
options: [
{
option: 'projects',
phrase: 'for clients',
slogan: 'slogan...'
},
{
option: 'sides',
phrase: 'for us',
slogan: 'we love what we make'
},
{
option: 'moments',
phrase: 'with the crew'
}
]
}
},
methods: {
revert: function () {
this.$dispatch('return-home', true)
},
mason: function () {
var $grid = $('.grid').masonry({
itemSelector: '.grid-item',
columnWidth: 250
});
$grid.masonry('layout');
}
},
events: {
'option-select': function (option) {
}
}
}
</script>
在Vue2中,没有
ready
生命周期挂钩之类的东西。相反,mounted
一旦实例按照您的想法“准备就绪”,就会触发生命周期挂钩。参考:https : //vuejs.org/v2/guide/instance.html#Lifecycle-Diagram