我正在使用vue-masonry plugin,这让我可以轻松创建一个砌体网格。
我创建了一个无限加载系统,您可以滚动到页面底部,然后将新图片附加到与vue-masonry插件绑定的数组中。
当我为其他用户上传的新图片创建轮询系统时,会出现问题。这些新图片需要位于砖石网格的顶部。
The plugin使用两个Vue指令masonry
(父级)和masonryTile
(元素)。 masonryTile
有一个v-for循环通过与我的Vue实例绑定的数组(它完成所有繁重的工作,预加载,sanityzing等...)。
指令中有没有办法知道附加或前置的内容之间的差异?并尝试不同的反应(我知道砌体有一些追加/前置方法),但在这里和这个插件,已经添加的项目(在开始所以前置与Vue一起使用)但是没有砌体交互也没有重绘(我试过了)使用原型来触发重绘this.$redrawVueMasonry();
)。
所以我不知道接下来要做什么。继续找到一种方法来区分prepend和append并试图将它绑定到相应的砌体方法?或者我没想到的另一种方法......
先谢谢你的帮助
Ps:我不认为我的代码真的很重要,因为它更像是一种优化插件的方法。如果您想要我的代码的某些特定部分,请在评论中告诉我!
答案 0 :(得分:1)
这可能为时已晚,这是一个长达10个月的问题。 但是 vue-masonry 能够处理将项目拼接在阵列中任何位置的情况。但是要正确更新网格 this。$ redrawVueMasonry(),应在 this。$ nextTick()内部调用,如下所示:
this.$nextTick(() => this.$redrawVueMasonry());
希望这可以帮助别人,即使不是原始海报。