tv2regionerne / statamic-endless
该包最新版本(v1.3.0)没有可用的许可信息。
v1.3.0
2024-09-09 09:07 UTC
Requires
- livewire/livewire: ^3.4
- statamic/cms: ^4.48 || ^5.0
This package is auto-updated.
Last update: 2024-09-09 09:07:21 UTC
README
Statamic Endless 允许您创建无限滚动列表,当您到达列表底部时自动或手动加载新条目。
如何安装
您可以在 Statamic 控制面板的 工具 > 扩展 部分搜索此插件,并点击 安装,或者从项目根目录运行以下命令
composer require tv2regionerne/statamic-endless
如何使用
请确保 Livewire v3 已安装,然后使用 collection:endless 标签
{{ collection:endless as="posts" from="blog" paginate="5" }}
<div x-ref="append">
{{ posts }}
{{ partial:blog/post }}
{{ /posts }}
</div>
<button x-on:click="trigger" x-show="paginate.has_more_pages">Load More</button>
{{ /collection:endless }}
带有拦截器的示例
{{ collection:endless as="posts" from="blog" paginate="5" }}
<div x-ref="append">
{{ posts }}
{{ partial:blog/post }}
{{ /posts }}
</div>
<div
x-data="{
intersecting: false,
init() {
$watch('intersecting', () => this.check());
},
check() {
if (this.intersecting && paginate.has_more_pages) {
trigger().then(() => this.check());
}
},
}"
x-show="!loading && paginate.has_more_pages"
x-intersect:enter="intersecting = true"
x-intersect:leave="intersecting = false">
</div>
{{ /collection:endless }}
您必须启用分页。
内容将包裹在 Livewire/Alpine 组件中
- 您应该为包含列表的元素添加
x-ref为append或prepend。 - 您可以使用
x-intersect或x-on调用trigger以加载更多条目。 - 您可以使用
loading检查加载状态。
在次级加载时,从标签作用域外部传递的变量只有在将它们列在 context 参数(管道分隔)中时才可用。这些变量必须是可序列化的。